Tài liệu hướng dẫn

Phiên bản API 1.1

Tài liệu này giải thích cách đăng ký, cấu hình và phát triển ứng dụng của bạn để sử dụng thành công các API của chúng tôi

Tạo ứng dụng

Để ứng dụng của bạn có thể truy cập hệ thống API, bạn phải tiến hành đăng ký ứng dụng thông qua Bảng điều khiển ứng dụng. Việc đăng ký sẽ tạo ra một Mã ứng dụng (App ID) giúp chúng tôi xác định danh tính và phân biệt ứng dụng của bạn với các bên khác.

  1. Bạn sẽ cần tạo một ứng dụng mới Tạo Ứng dụng mới
  2. Sau khi ứng dụng được tạo thành công, bạn sẽ nhận được app_idapp_secret
Đăng nhập với

Hệ thống "Đăng nhập bằng..." là phương thức nhanh chóng và tiện lợi để người dùng tạo tài khoản và đăng nhập vào ứng dụng của bạn. Hệ thống của chúng tôi hỗ trợ hai kịch bản: xác thực danh tính và yêu cầu cấp quyền truy cập dữ liệu cá nhân. Bạn có thể sử dụng giải pháp này cho mục đích xác thực đơn thuần hoặc kết hợp cả hai..

  1. Để bắt đầu quá trình đăng nhập OAuth, bạn cần sử dụng một đường dẫn cho ứng dụng của mình có dạng như sau:
    <a href="https://craftvn.net/api/oauth?app_id=YOUR_APP_ID">Log in With CraftVN</a>

    Người dùng sẽ được chuyển hướng tới trang Đăng nhập có giao diện như thế này

  2. Khi người dùng chấp nhận ứng dụng, họ sẽ được chuyển hướng về URL phản hồi (Redirect URL) kèm theo auth_key như thế này:
    https://mydomain.com/my_redirect_url.php?auth_key=AUTH_KEY
    Đây auth_key chỉ có giá trị sử dụng một lần duy nhất. Sau khi đã dùng, mã này không thể tái sử dụng; để tạo mã mới, bạn bắt buộc phải chuyển hướng người dùng đến liên kết đăng nhập một lần nữa.
Mã truy cập (Access Token)

Sau khi bạn nhận được sự chấp thuận của người dùng từ cửa sổ Đăng nhập và hệ thống trả về auth_key điều đó có nghĩa là bây giờ bạn đã sẵn sàng lấy dữ liệu từ các hệ thống API của chúng tôi. Để bắt đầu quy trình này, bạn sẽ cần ủy quyền cho ứng dụng của mình và nhận access_token và bạn có thể làm theo các bước hướng dẫn của chúng tôi để biết cách lấy nó.

  1. Để lấy mã truy cập (access token), hãy thực hiện một yêu cầu HTTP GET đến điểm cuối (endpoint) sau đây như thế này:
    <?php
    
    $app_id = "YOUR_APP_ID"; // your app id
    $app_secret = "YOUR_APP_SECRET"; // your app secret
    $auth_key = $_GET['auth_key']; // the returned auth key from previous step
    
    // Prepare the POST data
    $postData = [
      'app_id' => $app_id,
      'app_secret' => $app_secret,
      'auth_key' => $auth_key
    ];
    
    // Initialize cURL
    $ch = curl_init('https://craftvn.net/api/authorize');
    
    // Set cURL options for POST
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_POST, true);
    curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($postData));
    
    // Execute request
    $response = curl_exec($ch);
    
    // Check for cURL errors
    if (curl_errno($ch)) {
      die('cURL error: ' . curl_error($ch));
    }
    
    curl_close($ch);
    
    // Decode the JSON response
    $json = json_decode($response, true);
    
    // Use the access token if available
    if (!empty($json['access_token'])) {
      $access_token = $json['access_token']; // your access token
    }
    ?>
    
    Đây access_token chỉ có giá trị trong vòng 1 giờ, vì vậy khi mã hết hạn, bạn sẽ cần tạo một mã mới bằng cách chuyển hướng người dùng đến liên kết đăng nhập một lần nữa.
API

Khi bạn đã nhận được access_token Giờ đây bạn đã có thể lấy các thông tin từ hệ thống của chúng tôi thông qua các yêu cầu HTTP GET hỗ trợ các tham số sau

Điểm cuối (Endpoint) Mô tả
api/get_user_info lấy thông tin người dùng

Bạn có thể lấy thông tin người dùng như thế này

            if(!empty($json['access_token'])) {
                $access_token = $json['access_token']; // your access token
                $get = file_get_contents("https://craftvn.net/api/get_user_info?access_token=$access_token");
            }
				

Kết quả trả về sẽ là:

            {
              "user_info": {
              "user_id": "",
              "user_name": "",
              "user_email": "",
              "user_firstname": "",
              "user_lastname": "",
              "user_gender": "",
              "user_birthdate": "",
              "user_picture": "",
              "user_cover": "",
              "user_registered": "",
              "user_verified": "",
              "user_relationship": "",
              "user_biography": "",
              "user_website": ""
              }
            }