PHP cURL JSON API

В моей документации по API говорится, что мне нужно ввести следующую cURL.

локон

-H "Accept: application/json" -F grant_type=consumer_credentials -F consumer_key=ABCDEFGHIJKLMN -F consumer_secret=123456789 https://sandbox.apps.****.com/api/AccessToken 

Я понятия не имею, что делать с битами -F (а не то, что означает -F!). Поэтому я помещал их как данные JSON post.

Я предполагаю, что -H – заголовок?

В качестве отправной точки у меня было следующее:

 $data = array( "grant_type" => "consumer_credentials", "consumer_key" => "ABCDEFGHIJKLMN", "consumer_secret" => "123456789" ); $str_data = json_encode($data); $url_send ="https://sandbox.apps.****.com/api/AccessToken"; function sendPostData($url, $post){ $ch = curl_init($url); curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST"); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_POSTFIELDS,$post); curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); curl_setopt($ch, CURLOPT_HTTPHEADER, array('Accept: application/json')); $result = curl_exec($ch); curl_close($ch); return $result; } echo " " . sendPostData($url_send, $str_data); 

Но все, что я получаю, это страница, в которой говорится, что произошла ошибка. Он должен вернуть JSON с данными входа.

Как сказал Марк, я отправлял через json вместо обычных полевых данных.

Я вставляю

 foreach($data as $key=>$value) { $str_data .= $key.'='.$value.'&'; } rtrim($str_data, '&'); 

вместо

 $str_data = json_encode($data); 

и, похоже, сейчас работает.

благодаря