Категории
Уведомление: Заходите к нам в Telegram-чат
Skripters » XenForo » API endpoint: Find a User by Criteria 1.0.1

API endpoint: Find a User by Criteria 1.0.1

SaNcHeS
Опубликовано 5-02-2021, 14:19

Добавляет новую конечную точку в контроллер API пользователей, что позволяет разработчикам извлекать пользователя на основе одного из трех критериев:

user_id
email
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 - содержит полную запись пользователя в соответствии с User data type
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=test@example.com&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 GuzzleHttpClient([
'base_uri' => 'http://xenforo21.local/api/'
]);

$response = $client->request('GET', 'users/find-criteria', [
'query' => [
'user_id' => 2,
'email' => 'test@example.com',
'username' => 'test user'
],
'http_errors' => false,
'headers' => [
'XF-Api-Key' => 'your-api-key'
]
]);

$data = GuzzleHttpjson_decode($response->getBody()->getContents(), true);

var_dump($data);


Laravel 7









PHP: Скопировать


$response = IlluminateSupportFacadesHttp::withHeaders([
'XF-Api-Key' => 'your-api-key'
])->get('http://xenforo21.local/api/users/find-criteria', [
'user_id' => 2,
'email' => 'test@example.com',
'username' => 'test user'
]);

$data = $response->json();

var_dump($data);
Понравилось?
0
0
0

Скачать API endpoint: Find a User by Criteria 1.0.1:

API endpoint: Find a User by Criteria 1.0.1 Размер файла: 12.51 Kb
18
0