MapMyFitness API OAuth вопросы

У меня возникли некоторые проблемы с MapMyFitness API. MapMyFitness использует OAuth 1.0

Я могу успешно получить комбинацию временного токена авторизации / временного секретного токена от вызова 3.1/oauth/request_token

После этого я могу успешно направить пользователя на страницу авторизации и получить обратный вызов перенаправления с верификатором авторизации.

После этого, к сожалению, я получаю ошибки при попытке вызвать 3.1/oauth/access_token. (Ошибка HTTP 401)

Прежде всего, документация MMF ( http://api.mapmyfitness.com/3.1/oauth/access_token?doc) гласит: Обмен токеном запроса и верификатором авторизации для токена доступа. Однако список входных аргументов в документации не содержит упоминания oauth_verifier. Должен ли oauth_verifier, который я получил с обратным вызовом перенаправления, быть передан вызову access_token в качестве аргумента?

Во-вторых, мне кажется, что, возможно, я неправильно создаю подпись. Для вызова 3.1/oauth/request_token ключ для генерации подписи - "XXX&", где XXX - секретный ключ потребителя, назначенный моему приложению MapMyFitness. Это отлично работает. Для вызова 3.1 / oauth / access_token я использую "XXX&YYY" в качестве ключа подписи, где XXX - это секретный ключ потребителя, назначенный моему приложению MapMyFitness, а YYY - временный секретный токен, возвращенный мне сервером во время 3.1 / oauth. / request_token вызов. Это верно?

Буду очень признателен за любые предложения.

1 ответ

Решение

Хорошо, я получил это работает. Прежде всего, oauth_verifier ДОЛЖЕН быть включен как часть параметров. По какой-то причине Map My Fitness не включает его в свой список обязательных параметров, но он должен быть там. Во-вторых, что очень важно, согласно документации OAuth 1.0, при создании подписи все параметры должны быть в алфавитном порядке, иначе произойдет несоответствие подписи, и вы получите ошибку HTTP 401. После сортировки параметров в алфавитном порядке я смог обменять временные учетные данные MapMyFitness на постоянные.

Другие вопросы по тегам