Получить токен доступа от BOX API, используя php?

Я пытаюсь получить токен доступа из box API, следующий curl работает, когда я запускаю его на терминале

curl https://api.box.com/oauth2/token \
-d  'grant_type=authorization_code&code=CODE&client_id=CLIENT_ID&client_secret=secret_ID' \
-X POST  # This is working.

Над одним работает, но то же самое, что я пытался с PHP, но который выдает следующую ошибку {"error":"invalid_request","error_description":"Invalid grant_type parameter or parameter missing"}1 следующий код я пробовал

$access_token_url = "https://api.box.com/oauth2/token";
$ch = curl_init();
curl_setopt($ch,CURLOPT_URL, $access_token_url);
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
'grant_type'=>'authorization_code',
'code'=>'code',
'client_id'=>'id',
'client_secret'=>'secret'
));
$response = curl_exec($ch);
curl_close($ch);

Я не знаю, в чем проблема.

0

Решение

Данные, которые вы должны установить как POST параметры, а не HEADER параметры

$access_token_url = "https://api.box.com/oauth2/token";
$ch = curl_init();
curl_setopt($ch,CURLOPT_URL, $access_token_url);
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query([
'grant_type'=>'authorization_code',
'code'=>'code',
'client_id'=>'id',
'client_secret'=>'secret'
]));
$response = curl_exec($ch);
curl_close($ch);
1

Другие решения

Я думаю, это потому, что пример командной строки делает запрос POST, а запрос PHP curl — нет. Надеемся, что приведенный ниже код поможет вам выбрать правильный путь.

<?php
$access_token_url = "https://api.box.com/oauth2/token";
$ch = curl_init();
curl_setopt($ch,CURLOPT_URL, $access_token_url);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS,
array(
'grant_type'=>'authorization_code',
'code'=>'code',
'client_id'=>'id',
'client_secret'=>'secret'));

$response = curl_exec($ch);
curl_close($ch);
?>
1

Вы отправляете разные параметры вместе. -вариант d отправляет запрос POST, чтобы вы не могли смешать все параметры в GET. Сделайте запрос как в предоставленном пример:

curl https://api.box.com/oauth2/token \
-d 'grant_type=authorization_code' \
-d 'code=<MY_AUTH_CODE>' \
-d 'client_id=<MY_CLIENT_ID>' \
-d 'client_secret=<MY_CLIENT_SECRET>' \
-X POST
0
По вопросам рекламы ammmcru@yandex.ru
Adblock
detector