PHP CURL JSON API

A documentação da minha API diz que eu preciso inserir o seguinte cURL.

ondulação

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

Não tenho ideia do que fazer com os bits -F (nem o que -F significa!) Então eu os coloco como dados de postagem da JSON.

Eu suponho que -H é header?

Como ponto de partida, tive isso:

 $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); 

Mas tudo que recebo é uma página que diz que ocorreu erro. Ele deve retornar JSON com dados de login.

Como Marc disse, eu estava enviando através de json em vez de dados de campo normais.

Coloquei

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

ao invés de

 $str_data = json_encode($data); 

e parece estar funcionando agora.

obrigado