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)
,
Также стоит проверить правильность даты, времени и часового пояса на вашем клиенте, иначе проверка подписи не удастся.