может кто-нибудь может мне помочь,
Я пытаюсь получить токен обновления, выданный после первой авторизации спортсмена с моим приложением,
Oauth 2.0 прекрасно работает в почтальоне, и я могу получить токен обновления таким образом, но не в моем php-скрипте persnoal … Я получил только такой JSON-ответ:
{
"token_type": "Bearer",
"access_token": "ACCESS_TOKEN",
"athlete": {
#{summary athlete representation}
}
}
Но я жду токена обновления и даты истечения срока действия, которую демонстрирует документация Strava API в этом примере:
{
"token_type": "Bearer",
"access_token": "987654321234567898765432123456789",
"athlete": {
#{summary athlete representation}
}
"refresh_token": "1234567898765432112345678987654321",
"expires_at": 1531378346,
"state": "STRAVA"}
Я пытался отозвать доступ к приложению из тестового аккаунта, много раз имитировать новый запрос аутентификации, но я не нашел ответа, вот мой код для вызова URL обмена токенами:
<?php
require 'config.php';
$code = $_GET['code'];
//The url you wish to send the POST request to
$url = "https://www.strava.com/oauth/token";
//The data you want to send via POST
$fields = [
'client_id' => $client_ID,
'client_secret' => $client_secret,
'code' => $code,
'grant_type' => 'authorization_code'
];
//url-ify the data for the POST
$fields_string = http_build_query($fields);
//open connection
$ch = curl_init();
//set the url, number of POST vars, POST data
curl_setopt($ch,CURLOPT_URL, $url);
curl_setopt($ch,CURLOPT_POST, count($fields));
curl_setopt($ch,CURLOPT_POSTFIELDS, $fields_string);
//So that curl_exec returns the contents of the cURL; rather than echoing it
curl_setopt($ch,CURLOPT_RETURNTRANSFER, true);
//execute post
$result = curl_exec($ch);
echo $result;
print_r(curl_error($ch))
?>
PS: Oauth 2.0 прекрасно работает в почтальоне, и я могу получить токен обновления таким образом, но не в моем сценарии php persnoal …
Спасибо за помощь.
Наконец, нашел решение, это был параметр области, я предоставлял неправильную область, и с scope=read_all&scope=activity:read_all, it works perfectly
,
Других решений пока нет …