Тип предоставления ошибки веб-API Fitbit

Ниже приведена ошибка, о которой сообщает api.

{"errors":[
   {
     "errorType": "invalid_request",
     "message": "Missing 'grant_type' parameter value."
   }
], "success": false}

//curl request to fetch token with use of auth code used in my code

$curl = curl_init();
curl_setopt_array($curl, array(

    CURLOPT_RETURNTRANSFER => 1,

CURLOPT_URL => 'https://api.fitbit.com/oauth2/token',
CURLOPT_HTTPHEADER => array(
  'Authorization:Basic'.base64_encode(FITBIT_CLIENT_ID.':'.FITBIT_CLIENT_SECRET),
'Content-Type: application/x-www-form-urlencoded'
),
CURLOPT_POST => 1,
CURLOPT_POSTFIELDS => array(
    'code' => $auth_code,
    'client_id' => FITBIT_CLIENT_ID,
    'grant_type' => "authorization_code", //auth code received in url params
    'redirect_uri' => 'https://www.example.com/auth/fitbit/success'
)
));
$resp = curl_exec($curl);
curl_close($curl);

я получаю эту ошибку. Помогите пожалуйста определить где может быть ошибка.


person Sahil Garg    schedule 03.03.2017    source источник


Ответы (1)


Оберните массив поля сообщения, чтобы убедиться, что вы выполняете кодировку (в случае специальных символов).

CURLOPT_POSTFIELDS => http_build_query (array(
...
))

Попробуйте поставить пробел между заголовком авторизации. Стандартный для использования Authorization: Basic

Если все еще видите ошибку, используйте режим VERBOSE с вашим запросом на завивание. И обновите свой вопрос с помощью этого подробного вывода, чтобы мы могли вам помочь.

person Sabuj Hassan    schedule 03.03.2017
comment
Да, когда мы даем входные данные в виде строки вместо массива! Это работает нормально. Так что http_build_query решит проблему. БЛАГОДАРНОСТЬ - person Sahil Garg; 04.03.2017