Làm cách nào để chuyển mã thông báo mang trong tiêu đề của php curl?

Đoạn mã sau là một ví dụ về xác thực và yêu cầu đơn giản với PHP và cURL


# Run with: php -S localhost:8000

session_start();

$CLIENT_ID = "123";
$CLIENT_SECRET = "123";
$CALLBACK = "http://localhost:8000";
$SCOPES = array("sales_invoices", "documents");

function authorizeUrl($client_id, $callback, $scopes = array())
{
  $pattern = "https://moneybird.com/oauth/authorize?client_id=%s&redirect_uri=%s&scope=%s&response_type=code";
  return sprintf($pattern, $client_id,
                           urlencode($callback),
                           implode("+", $scopes));
}

function getAccessCode($client_id, $callback, $client_secret, $request_code) {
  $curl = curl_init("https://moneybird.com/oauth/token");
  curl_setopt($curl, CURLOPT_FOLLOWLOCATION, false);
  curl_setopt($curl, CURLOPT_HEADER, false);
  curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
  curl_setopt($curl, CURLOPT_POST, true);
  curl_setopt($curl, CURLOPT_POSTFIELDS, rawurldecode(http_build_query(array(
    'client_id' => $client_id,
    'redirect_uri' => $callback,
    'client_secret' => $client_secret,
    'code' => $request_code,
    'grant_type' => 'authorization_code'
  ))));

  $json = json_decode(curl_exec($curl));
  return $json->access_token;
}

function getAdministrations($access_token) {
  $headers = array(
    'Content-Type: application/json',
    sprintf('Authorization: Bearer %s', $access_token)
  );

  $curl = curl_init("https://moneybird.com/api/v2/administrations.json");

  curl_setopt($curl, CURLOPT_HTTPHEADER, $headers);
  curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);

  $result = json_decode(curl_exec($curl));

  return $result;
}

if (isset($_GET['reset'])) {
  session_destroy();
  header(sprintf("Location: %s", $CALLBACK));
  die();
} elseif(isset($_SESSION['access_token'])) {
  $administrations = getAdministrations($_SESSION['access_token']);

  foreach($administrations as $administration) {
    echo $administration->name . "
"
; } } elseif (isset($_GET['code'])) { $access_token = getAccessCode($CLIENT_ID, $CALLBACK, $CLIENT_SECRET, $_GET['code']); $_SESSION['access_token'] = $access_token; header(sprintf("Location: %s", $CALLBACK)); die(); } else { echo "Starting point, click on the link
"
?> href=" echo authorizeUrl($CLIENT_ID, $CALLBACK, $SCOPES); ?>">Click }

Làm cách nào để thêm mã thông báo mang trong PHP?

Để gửi yêu cầu GET với tiêu đề ủy quyền Bearer Token bằng PHP, bạn cần thực hiện yêu cầu HTTP GET và cung cấp Mã thông báo Bearer của bạn với Ủy quyền. Tiêu đề HTTP mang {token}

Làm cách nào để truyền dữ liệu vào tiêu đề trong khi sử dụng Curl PHP?

Để gửi tiêu đề HTTP với yêu cầu Curl, bạn có thể sử dụng tùy chọn dòng lệnh -H và chuyển tên và giá trị tiêu đề vào "Key. định dạng giá trị" . Nếu bạn không cung cấp giá trị cho tiêu đề, điều này sẽ xóa tiêu đề tiêu chuẩn mà Curl sẽ gửi.

Làm cách nào để sử dụng mã thông báo truy cập trong Curl?

Để tạo mã thông báo truy cập. .
Thay thế {AUTH CODE QUERY PARAMETER} bằng mã xác thực bạn đã sao chép từ bước trước đó trong yêu cầu cURL ở trên
Thay thế {CLIENT ID} trong yêu cầu trên bằng Client ID từ ứng dụng khách Oauth của bạn
Thay thế {CLIENT SECRET} trong yêu cầu trên bằng Client Secret từ ứng dụng khách Oauth của bạn

Làm cách nào để chèn mã thông báo trong PHP?

Cách tạo mã thông báo web JSON trong PHP .
Tạo tiêu đề và tải trọng. Để bắt đầu, chúng ta cần tạo các chuỗi JSON tiêu đề và tải trọng. .
Tạo chuỗi tiêu đề và tải trọng Base64Url. .
Tạo chữ ký. .
Base64Url Mã hóa chữ ký. .
Tạo mã thông báo web JSON