Ich versuche, PHP und CURL verwenden, um Anfragen an die Fitbit oauth 2.0 API zu stellen. Ich kann meinen Autorisierungscode erhalten, kann aber den Code für ein Token nicht austauschen. Die Fitbit-API-Dokumentation sagt (https://dev.fitbit.com/docs/oauth2/#access-token-request), dass ich Postcode, Client-ID, Redirect-URI und Grant-Typ auf 'Authorization_code' gesetzt habe.PHP cURL gewähren Typ ungültig/nicht unterstützt
Wie auch immer, ich bekomme immer einen Fehler, wenn ich die Antwort drucke.
"errortype": "unsupported_grant_type", "message": "Die Genehmigung grant_type wird nicht unterstützt, Besuche https://dev.fitbit.com/docs/oauth2 für weitere Informationen über die Fitbit Web API Genehmigungsverfahren.."}], "Erfolg": false}
Für das Leben von mir kann ich nicht herausfinden, was ich falsch mache mit dem untenstehenden Code. Irgendwelche Vorschläge?
$code = $_GET['code'];
$url = 'https://api.fitbit.com/oauth2/token';
$curl = curl_init($url);
curl_setopt($curl, CURLOPT_POST, true);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($curl, CURLOPT_HEADER, false);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_POSTFIELDS, array(
'code=' . $code . '&' .
'client_id=' . $oauth2_client_id . '&' .
'redirect_uri=' . $oauth2_redirect . '&' .
'grant_type=authorization_code'
)
);
curl_setopt($curl, CURLOPT_HTTPHEADER, array(
'Authorization: Basic '. base64_encode($oauth2_client_id.':'.$oauth2_secret),
'Content-Type: application/x-www-form-urlencoded'
));
$response = curl_exec($curl);
print_r($response);
Ja, danke! Aus irgendeinem Grund, sogar wenn Sie sie in ein richtiges Array wie Sie angegeben haben, hat nicht funktioniert. Die Verwendung einer einzelnen Zeichenfolge, aber nicht als Array, funktionierte perfekt! –