API endpoint: Find a User by Criteria

API endpoint: Find a User by Criteria 1.0.1

Нет прав для скачивания
Совместимость с XenForo
  1. 2.1
Добавляет новую конечную точку в контроллер API пользователей, что позволяет разработчикам извлекать пользователя на основе одного из трех критериев:
  • user_id
  • email
  • username
Все параметры являются необязательными, и если указано более одного, поиск выполняется по каждому критерию в указанном порядке.

Например, если указаны все три параметра и найдено соответствие user_id, оно будет возвращено независимо от параметров электронной почты или имени пользователя. Точно так же, если user_id не найден, но адрес электронной почты есть, то пользователь с таким адресом электронной почты будет возвращен независимо от указанного имени пользователя.

Конечная точка может быть найдена по адресу: GET users/find-criteria

Это дополнение было создано, чтобы помочь автору плагина интегрировать свои форумы со своей системой поддержки (HelpSpot). При просмотре запросов в службу поддержки в HelpSpot мы можем выполнить «живой поиск» во внешней системе, чтобы извлечь данные пользователя для отображения и / или сохранения в системе службы поддержки. В его случае он запрашивает мои форумы и возвращает информацию, такую как имена пользователей, статус пользователя, дату регистрации и даже ссылку на их профиль на форуме.

1592655969117.png

Иногда у нас есть 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);
Автор
DEVIL
Скачивания
11
Просмотры
502
Первый выпуск
Обновление
Оценка
0.00 звёзд 0 оценок

Другие ресурсы пользователя DEVIL

Поделиться ресурсом

Назад
Сверху Снизу