Yahoo OAuth на Android - ошибка 401

Я пытаюсь реализовать OAuth для Google, Twitter, Yahoo и т. Д. На Android, используя библиотеки указателей.

Все вышеперечисленное работает нормально, кроме Yahoo, которая выдает ошибку 401 при попытке получить токен запроса. Я попытался изменить свой URL обратного вызова на http, и даже попытался вне проверки подлинности.

У кого-нибудь есть идеи о том, что я могу делать неправильно?

Мой код, который запрашивает OAuth Request Token с использованием библиотек Signpost, вставлен ниже.

private static CommonsHttpOAuthConsumer yahooConsumer = new CommonsHttpOAuthConsumer(
        YAHOO_CONSUMER_KEY, YAHOO_CONSUMER_SECRET);
private static CommonsHttpOAuthProvider yahooProvider = new CommonsHttpOAuthProvider(
        YAHOO_REQUEST_URL, YAHOO_ACCESS_TOKEN_URL, YAHOO_AUTH_URL); 

а также

String authURL = yahooProvider.retrieveRequestToken( yahooConsumer,YAHOO_REDIRECT_URL); startWebView(authURL);

РЕДАКТИРОВАТЬ:

Вот вывод из пойманного исключения:

08-21 00: 18: 10.935: WARN / System.err (3752): oauth.signpost.exception.OAuthNotAuthorizedException: авторизация не удалась (сервер ответил 401). Это может произойти, если ключ потребителя был неверен или подписи не совпадали. 08-21 00:18:10.945: WARN/System.err(3752): в oauth.signpost.AbstractOAuthProvider.handleUnexpectedResponse(AbstractOAuthProvider.java:239) 08-21 00:18:10.945: WARN/System.err(3752): в oauth.signpost.AbstractOAuthProvider.retrieveToken(AbstractOAuthProvider.java:189) 08-21 00:18:10.955: WARN/System.err(3752): в oauth.signpost.AbstractOAuthProvider.retrieveRequestToken(AbstractOAuthProv)

Спасибо,

Abhinav

2 ответа

Решение

consumer_key_rejected означает, что вы не предоставили действительный consumer_key в Yahoo. Если вы предоставили право consumer_key Yahoo, вы можете проверить регистрацию вашего приложения в Yahoo. Возможно, вам нужно проверить хотя бы одну или несколько услуг, предоставляемых Yahoo. Не забудьте также выбрать тип вашего приложения, будь то веб-приложение или клиентское приложение.

Все это имеет смысл, так как Yahoo включил область разрешений в Ключ потребителя. Прочитайте это объяснение для получения дополнительной информации: Yahoo OAuth Scope.

Это пример обходного пути и советы, которые могут быть полезны для решения вашей проблемы: Yahoo OAuth Problem - Consumer Key Rejected

Дайте мне знать, если это работает для вас.

Попробуйте принудительно установить аутентификацию 1.0a с Provider.setOAuth10a(true),

Также стоит проверить правильность даты, времени и часового пояса на вашем клиенте, иначе проверка подписи не удастся.

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