Страва Апи выпуск - PullRequest
       28

Страва Апи выпуск

0 голосов
/ 21 октября 2018

Я использую этот пакет композитора https://github.com/basvandorst/StravaPHP

OAUTH работает нормально и генерирует JSON с токеном доступа и идентификатором пользователя и т. Д.

Но всякий раз, когда япопробуйте использовать другую функцию, она возвращает мне 404. Не найдено.

Вывод такой:

{"token_type":"Bearer","access_token":"077058e0c800881c72a4b10a04a520d5898d4e3e","athlete":{"id":35670467,"username":"amir_do","resource_state":2,"firstname":"Amir","lastname":"Do","city":null,"state":null,"country":null,"sex":"M","premium":false,"summit":false,"created_at":"2018-10-13T13:55:41Z","updated_at":"2018-10-13T13:56:25Z","badge_type_id":0,"profile_medium":"https://lh5.googleusercontent.com/-ku6v9lKNgYY/AAAAAAAAAAI/AAAAAAAAAAA/ABtNlbASj8KhClhwnVYVqRrEG2oiYzWPbA/mo/photo.jpg","profile":"https://lh5.googleusercontent.com/-ku6v9lKNgYY/AAAAAAAAAAI/AAAAAAAAAAA/ABtNlbASj8KhClhwnVYVqRrEG2oiYzWPbA/mo/photo.jpg","friend":null,"follower":null,"email":"goncalomaia97@gmail.com"}}
35670467


Client error: `GET https://www.strava.com/api/athletes/35670467/stats?access_token=077058e0c800881c72a4b10a04a520d5898d4e3e` resulted in a `404 Not Found` response: {"message":"Record Not Found","errors":[{"resource":"resource","field":"path","code":"invalid"}]}

И это мой текущий код страницы callback.php:

<code><?php 
include 'vendor/autoload.php';
use Strava\API\Client;
use Strava\API\Exception;
use Strava\API\Service\REST;
session_start();
$client = new GuzzleHttp\Client();
global $connect;

require_once("configs/database.php");
$connect = new mysqli($config['database']['host'],$config['database']['user'],$config['database']['pass'],$config['database']['db']); 

$code = $_GET['code'];
$state = $_GET['state'];
$scope = $_GET['scope'];

$user = $_SESSION['username'];
$check = $connect->query("SELECT * FROM users WHERE email = '$user'");
$fetch = $check->fetch_array(MYSQLI_ASSOC);

$apix = $fetch['api'];
$api_secretx = $fetch['api_secret'];

$client = new GuzzleHttp\Client();
$data   = [
    "client_id"    => $apix,
    "client_secret" => $api_secretx,
    "code" => $code
];

$result = $client->post('https://www.strava.com/oauth/token', ['json' => $data]);


print "<pre>";
print_r( $result->getBody()->getContents() );
print "
";$ bodyb = $ result-> getBody (); $ varx = json_decode ((string) $ bodyb, true); $ token = $ varx ['access_token']; $ id = $ varx ['athlete'] ['id']; $ _SESSION ['token'] = $ token; printf ($ id); try {// REST адаптер (в этом проекте мы используем `Guzzle`) $ adapter = new \ GuzzleHttp \ Client (['base_uri' =>'https://www.strava.com/api/v3']); // Служба для использования (служба \ заглушка также доступна для тестирования) $ service = new \ Strava \ API \ Service \ REST ($ token, $ adaptor); // Получить атлета! $ Client = newКлиент ($ service); $ athlete = $ client-> getAthleteStats ($ id); print_r ($ athlete);} catch (Исключение $ e) {print $ e-> getMessage ();}

1 Ответ

0 голосов
/ 21 октября 2018
$adapter = new \GuzzleHttp\Client(['base_uri' => 'https://www.strava.com/api/v3']);

Измените это на (должно быть трейлинг):

$adapter = new \GuzzleHttp\Client(['base_uri' => 'https://www.strava.com/api/v3/']);
...