Опубликовать данные с заголовком в curl не работает в php?

Я пытаюсь создать коробочное приложение для пользователей с помощью PHP. Завиток для создания пользователя выглядит следующим образом, и он работает на терминале

curl https://api.box.com/2.0/users \
-H "Authorization: Bearer <Access token>" \
-d '{"name": "New User", "is_platform_access_only": true}' \
-X POST

То же самое, что я пытался с php, но дает следующую ошибку

{"type":"error","status":400,"code":"invalid_request_parameters","help_url":"http:\/\/developers.box.com\/docs\/#errors","message":"Invalid input parameters in request","request_id":"6688622675982fb5339a37"}

Следующий я попробовал

$developer_token = "TOKEN" ;
$access_token_url = "https://api.box.com/2.0/users";

$ch = curl_init();
curl_setopt($ch,CURLOPT_URL, $access_token_url);

//Adding Parameters
curl_setopt($ch, CURLOPT_POSTFIELDS, array(
'name'=>'NEW USER',
'is_platform_access_only'=>'true',
));

//Adding Header
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
'Authorization: Bearer '.$developer_token
));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

$response1 = curl_exec($ch);

Если я удаляю параметры Post и запускаю только заголовки, это дает результат пользователям. Но с постом это выдает ошибку.

0

Решение

Я поднял тот же вопрос в Тег Perl с кодом Perl. Там я получил ответ от пользователя @melpomene,

Мы должны закодировать данные в формате JSON. Это работает,
Тогда окончательный код

$data = array(name=>SOMENAME,is_platform_access_only=>true);
$data = json_encode($data);
$header = array("Authorization: Bearer <TOKEN>");
$ch = curl_init("https://api.box.com/2.0/users/");
curl_setopt($ch, CURLOPT_HTTPHEADER, $header);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
curl_setopt($ch,CURLOPT_POSTFIELDS,$data);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$response1 = curl_exec($ch);
curl_close($ch);
0

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

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector