Как реализовать запрос "GET" для работы с STRAVA API от Почтальона?
Дальнейшее обновление...
Я получил это работает. Хотя документация Стравы не говорит, что какие-либо аргументы в вызове являются обязательными, кажется, что все они таковы. Вы должны указать действительные аргументы до и после во время эпохи, и... (и это часть, которая меня немного смутила), вам нужно указать номер страницы и количество элементов на странице. Количество элементов на странице по умолчанию равно 30, но номер страницы не по умолчанию. То, как это работает, заключается в том, что если вы произносите страницы 1 и 30 элементов на страницу, вы получаете пункты 1–30. Если вы говорите страницы 3 и 30 элементов на страницу, вы получаете пункты 31–60 и так далее. Вы должны создать цикл, который будет продолжаться до тех пор, пока он не получит пустую страницу. Затем вы знаете, что вы нашли все действия. (По крайней мере, я так думаю.)
Адриан
Обновление вопроса...
После некоторых копаний и экспериментов мне удалось решить некоторые из моих проблем (как описано ниже) самостоятельно. Когда кто-то создает приложение в Strava, указанное в ваших настройках в разделе "Мое приложение API", данный токен имеет область "прочитано" и выглядит очень и очень ограниченным.
После выполнения перечисленных здесь шагов проверки подлинности Strava мне удалось получить новый токен со следующими областями:
Объем = читать, активность: чтение, активность:read_all, раздел: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_ehaps=" " Авторизация: Носитель [[токен]]
Поэтому я заменяю "Авторизация: Носитель [[токен]] на &access_token=
Возможно, это моя ошибка, но access_token работает в первом примере.
Прошу прощения, если это полный идиотский вопрос. Я новичок, и я был бы признателен за любую помощь.
Спасибо
0 ответов
У меня были те же проблемы с запросом GET с Postman. В частности, при использовании Postman {https://www.strava.com/api/v3/activities/12345678?include_all_efforts=true} не работал, а { https://www.strava.com/api/v3/athletes/12345678/stats?} Работал как шарм.
Затем я опробовал игровую площадку Strava, как описано в документации. Оттуда меня попросили снова пройти аутентификацию, чтобы продлить авторизацию и успешно выполнить запрос GET. Этот: {https://www.strava.com/api/v3/activities/12345678?include_all_efforts=true} наконец-то заработал, как ожидалось. Я предполагаю, что использование Postman не позволяет выполнять этот дополнительный шаг аутентификации, и это причина, по которой я не мог получить ожидаемые результаты.