Addon 2x API endpoint: Find a User by Criteria - API endpoint: Tìm người dùng theo tiêu chí cho XenForo 2

PVS

Super Moderator
Thành viên BQT
API endpoint: Find a User by Criteria - API endpoint: Tìm người dùng theo tiêu chí cho XenForo 2 1.0.1

Thêm endpoint mới vào bộ điều khiển Users API cho phép developer truy xuất người dùng dựa trên một trong ba tiêu chí:
  1. user_id
  2. email
  3. username
Tất cả các tham số là tùy chọn và nếu có nhiều hơn một chỉ định, tìm kiếm được thực hiện theo từng tiêu chí ở trên theo thứ tự được liệt kê.

Ví dụ: nếu cả ba tham số được chỉ định và kết quả trùng khớp user_id, điều đó sẽ được trả về bất kể tham số email hoặc tên người dùng. Tương tự, nếu không tìm thấy user_id, nhưng lại tìm thấy được địa chỉ email, thì người dùng có địa chỉ email đó sẽ được trả về bất kể tên người dùng được chỉ định.

Endpoint có thể được tìm thấy tại: GET users/find-criteria

Addon này được tạo ra để giúp tích hợp các diễn đàn của mình với hệ thống trợ giúp (HelpSpot). Khi xem các yêu cầu trợ giúp trong HelpSpot, bạn có thể thực hiện "Tra cứu trực tiếp" cho hệ thống bên ngoài để truy xuất dữ liệu người dùng để hiển thị và lưu trữ trong hệ thống trợ giúp.

1592655969117.png

Đôi khi bạn có user_id, đôi khi bạn có một địa chỉ email và đôi khi bạn có tên người dùng - vì vậy hệ thống chỉ gửi những gì nó có cho API XenForo và sau đó trả về người dùng tìm thấy. Lưu ý rằng có một thành phần trung gian chuyển yêu cầu HelpSpot thành lệnh gọi API XenForo, sau đó phiên dịch trả về dữ liệu người dùng từ XenForo sang định dạng XML theo yêu cầu của HelpSpot.

Yêu cầu:

Bạn sẽ cần một key API với phạm vi user:read và nếu bạn muốn truy xuất dữ liệu địa chỉ email trong phản hồi, API người dùng cũng sẽ cần đặc quyền của Administrator với quyền Manage users and moderators.

Phản ứng:

Có hai yếu tố hàng đầu trong dữ liệu phản hồi được trả về:
  • user - chứa toàn bộ hồ sơ người dùng theo loại dữ liệu Người dùng
  • url - danh sách các URL để biết thêm thông tin về người dùng này:
    • api - một liên kết đến lệnh gọi API để lấy thông tin về người dùng này trực tiếp dựa trên id người dùng (từ API lõi)
    • public - một liên kết đến hồ sơ XenForo công khai cho người dùng này
    • admin - một liên kết đến hồ sơ quản trị XenForo cho người dùng này
Ví dụ:
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);

Chúc các bạn thành công.


Nguồn: xenforo.com​
 

Đính kèm

Back
Top