- Совместимость с XenForo
- 2.1
Добавляет новую конечную точку в контроллер API пользователей, что позволяет разработчикам извлекать пользователя на основе одного из трех критериев:
Например, если указаны все три параметра и найдено соответствие
Конечная точка может быть найдена по адресу:
Это дополнение было создано, чтобы помочь автору плагина интегрировать свои форумы со своей системой поддержки (HelpSpot). При просмотре запросов в службу поддержки в HelpSpot мы можем выполнить «живой поиск» во внешней системе, чтобы извлечь данные пользователя для отображения и / или сохранения в системе службы поддержки. В его случае он запрашивает мои форумы и возвращает информацию, такую как имена пользователей, статус пользователя, дату регистрации и даже ссылку на их профиль на форуме.
Иногда у нас есть
Требования:
Вам понадобится ключ API с
Ответ:
В возвращаемых данных ответа есть два верхних элемента:
cURL
Guzzle
Laravel 7
- user_id
- username
Например, если указаны все три параметра и найдено соответствие
user_id
, оно будет возвращено независимо от параметров электронной почты или имени пользователя. Точно так же, если user_id
не найден, но адрес электронной почты есть, то пользователь с таким адресом электронной почты будет возвращен независимо от указанного имени пользователя.Конечная точка может быть найдена по адресу:
GET users/find-criteria
Это дополнение было создано, чтобы помочь автору плагина интегрировать свои форумы со своей системой поддержки (HelpSpot). При просмотре запросов в службу поддержки в HelpSpot мы можем выполнить «живой поиск» во внешней системе, чтобы извлечь данные пользователя для отображения и / или сохранения в системе службы поддержки. В его случае он запрашивает мои форумы и возвращает информацию, такую как имена пользователей, статус пользователя, дату регистрации и даже ссылку на их профиль на форуме.
Иногда у нас есть
user_id
, иногда у нас есть адрес электронной почты, а иногда у нас есть имя пользователя - поэтому система просто отправляет то, что имеет, в API XenForo, а затем возвращает найденного пользователя. Обратите внимание, что существует промежуточный компонент, который переводит запрос HelpSpot в вызов API XenForo, а затем переводит данные пользовательских данных, возвращаемых из XenForo, в формат XML, необходимый для HelpSpot.Требования:
Вам понадобится ключ API с
user:read
, и если вы хотите получить данные адреса электронной почты в ответе, пользователю API также понадобятся привилегии администратора с правами «Управление пользователями и модераторами».Ответ:
В возвращаемых данных ответа есть два верхних элемента:
user
- содержит полную запись пользователя в соответствии сurls
- список URL для получения дополнительной информации об этом пользователе:api
- ссылка на вызов API для получения информации об этом пользователе напрямую на основе идентификатора пользователя (из основного API)public
- ссылка на публичный профиль XenForo для этого пользователяadmin
- ссылка на профиль администратора XenForo для этого пользователя
cURL
PHP:
<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "http://xenforo21.local/api/users/find-criteria?user_id=2&[email protected]&username=test%20user",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_TIMEOUT => 0,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"XF-Api-Key: your-api-key",
],
]);
$response = curl_exec($curl);
curl_close($curl);
$data = json_decode($response, true);
var_dump($data);
Guzzle
PHP:
$client = new \GuzzleHttp\Client([
'base_uri' => 'http://xenforo21.local/api/'
]);
$response = $client->request('GET', 'users/find-criteria', [
'query' => [
'user_id' => 2,
'email' => '[email protected]',
'username' => 'test user'
],
'http_errors' => false,
'headers' => [
'XF-Api-Key' => 'your-api-key'
]
]);
$data = \GuzzleHttp\json_decode($response->getBody()->getContents(), true);
var_dump($data);
Laravel 7
PHP:
$response = \Illuminate\Support\Facades\Http::withHeaders([
'XF-Api-Key' => 'your-api-key'
])->get('http://xenforo21.local/api/users/find-criteria', [
'user_id' => 2,
'email' => '[email protected]',
'username' => 'test user'
]);
$data = $response->json();
var_dump($data);