- Для версий
- 2.1
- 2.2
- 2.3
Описание API endpoint: Find a User by Criteria:
Добавляет новый endpoint к контроллеру API пользователей XenForo, позволяя разработчикам получать данные пользователя на основе заданных критериев.Основные функции API endpoint: Find a User by Criteria:
- Критерии поиска:
- user_id
- username
- Все параметры являются необязательными и проверяются в указанном порядке.
- Если найдено совпадение по user_id, поиск по остальным критериям прекращается.
- Endpoint:
- URL: GET users/find-criteria
- Применение:
- Полезен для интеграции XenForo с внешними системами, например, с хелпдеском (например, HelpSpot).
- Позволяет возвращать данные о пользователе, такие как имя пользователя, статус, дата регистрации и ссылки на профиль.
Ответ API:
- Элементы в ответе:
- user: полный набор данных о пользователе в формате User data type.
- urls: список ссылок:
- api: ссылка на API для получения данных пользователя по user_id.
- public: ссылка на публичный профиль пользователя.
- admin: ссылка на профиль администратора в XenForo.
Требования:
- API ключ с областью: user:read.
- Для получения email:
- Права администратора с доступом к "Manage users and moderators".
Примеры:
cURL:
<?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:
$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:
$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);