Обновление токена API Strava не производится после первой авторизации

может кто-нибудь может мне помочь,
Я пытаюсь получить токен обновления, выданный после первой авторизации спортсмена с моим приложением,
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 …

Спасибо за помощь.

0

Решение

Наконец, нашел решение, это был параметр области, я предоставлял неправильную область, и с scope=read_all&scope=activity:read_all, it works perfectly,

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]