Как реализовать запрос «GET» для работы с STRAVA API от Почтальона? - PullRequest
0 голосов
/ 29 января 2019

Дальнейшее обновление ...

Я получил это работает.Хотя документация Стравы не говорит, что какие-либо аргументы в вызове являются обязательными, кажется, что все они таковы.Вы должны указать действительные аргументы до и после во время эпохи, и ... (и это часть, которая меня немного смутила), вам нужно указать номер страницы и количество элементов на странице.Количество элементов на странице по умолчанию равно 30, но номер страницы не по умолчанию.То, как это работает, заключается в том, что если вы произносите страницы 1 и 30 элементов на страницу, вы получаете пункты 1–30. Если вы говорите страницы 3 и 30 элементов на страницу, вы получаете пункты 31–60 и так далее.Вы должны создать цикл, который будет продолжаться до тех пор, пока он не получит пустую страницу.Затем вы знаете, что вы нашли все действия.(По крайней мере, я так думаю.)

Адриан

Обновление вопроса ...

После некоторых исследований и экспериментов мне удалось решить некоторые из моих проблем.(как описано ниже) самостоятельно.Когда кто-то создает приложение в Strava, указанное в ваших настройках в разделе «Мое приложение API», данный токен имеет область действия «read» и выглядит очень и очень ограниченным.

После выполнения действий, перечисленных здесь StravaАутентификация Мне удалось получить новый токен со следующими областями:

scope = read, Activity: Read, Activity: read_all, profile: read_all, read_all

Итак ...Я думал, что я «золотой», как говорится:

Ну, теперь я могу выполнять отдельные действия, используя:

https://www.strava.com/api/v3/activities/2110745394?include_all_efforts="true"&access_token={{ADR_Strava_API_Key}}

Но когда я пытаюсь получитьсписок всех действий, которые я не получаю, но Strava просто возвращает

[], и это для спортсмена, которого я знаю, имеет более 1800 действий.

Что я действительно хочу, так этополучить список мероприятий.Буду признателен за любую помощь.

Спасибо

Адриан

Я могу получить информацию о спортсмене из Стравы, используя почтальон, используя следующий запрос https:

https://www.strava.com/api/v3/athletes/19133707?access_token={{ADR_Strava_API_Key}}

Возвращается следующее:

{
    "id": 19133707,
    "username": "adrian_geekie",
    "resource_state": 2,
    "firstname": "Adrian",
    "lastname": "Geekie",
    "city": "Gauteng, South Africa",
    "state": "GP",
    "country": "South Africa",
    "sex": "M",
    "premium": true,
    "summit": true,
    "created_at": "2017-01-03T16:07:37Z",
    "updated_at": "2019-01-28T16:08:07Z",
    "badge_type_id": 1,
    "profile_medium": "https://dgalywyr863hv.cloudfront.net/pictures/athletes/19133707/5599004/2/medium.jpg",
    "profile": "https://dgalywyr863hv.cloudfront.net/pictures/athletes/19133707/5599004/2/large.jpg",
    "friend": null,
    "follower": null
}

Но когда я пытаюсь получить действия, используя этот запрос:

https://www.strava.com/api/v3/19133707/activities?before=&after=1546293601&page=&per_page=&access_token={{ADR_Strava_API_Key}}

Я получаюэто вернуло:

{"message": "Запись не найдена", "error": [{"resource": "resource", "field": "path", "code": "invalid"}]}

По моему мнению, я запрашиваю все записи после 1 января 2019 года, т. Е. Отметку времени эпохи 1546293601. Я знаю, что после этой даты у этого спортсмена есть много занятий.(Более 20).

Я также пытался получить одно действие, используя:

https://www.strava.com/api/v3/activities/2110745394?include_all_efforts="true"&access_token={{ADR_Strava_API_Key}}

, и я получаю результат:

{"message": "Resource Not Found "," errors ": [{" resource ":" Activity "," field ":" "," code ":" not found "}]}

На странице разработчика Strava приведены примерыприведены для HTTPie следующим образом:

https://www.strava.com/api/v3/activities/{id}?include_all_efforts=" "Авторизация: Носитель [[токен]]

Поэтому я заменяю" Авторизация: Носитель [[токен]] на & access_token =

Возможно, это моя ошибка, но access_token работает в первом примере.

Извините, если это полный идиотский вопрос.Я новичок, и я был бы признателен за любую помощь.

Спасибо

...