3

標識ライブラリを使用して、Android で Google、Twitter、Yahoo などの OAuth を実装しようとしています。

要求トークンを取得しようとすると 401 エラーが発生する Yahoo を除いて、上記のすべてが正常に機能します。コールバック URL を http に変更してみました。また、帯域外認証も試しました。

私が間違っている可能性があることについて誰かが考えを持っていますか?

Signpost ライブラリを使用して OAuth リクエスト トークンをリクエストするコードを以下に貼り付けます。

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); 

文字列 authURL = yahooProvider.retrieveRequestToken( yahooConsumer,YAHOO_REDIRECT_URL); startWebView(authURL);

編集:

キャッチされた Exception からの出力は次のとおりです。

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(AbstractOAuthProviderjava:69) で

ありがとう、

アビナフ

4

2 に答える 2

4

consumer_key_rejectedconsumer_keyYahooに有効なものを提供しなかったことを意味します。Yahooに権利consumer_keyを提供している場合は、Yahooへのアプリの登録を確認できます。おそらく、Yahooが提供する少なくとも1つ以上のサービスをチェックする必要があります。Webベースかクライアントベースかにかかわらず、アプリケーションのタイプも選択することを忘れないでください。

Yahooがパーミッションスコープをコンシューマーキーにラップしたので、これはすべて理にかなっています。詳細については、この説明をお読みください:YahooOAuthスコープ

これは、問題を解決するのに役立つ可能性のある回避策の例とヒントです。YahooOAuthの問題-コンシューマーキーが拒否されました

これがあなたのために働くかどうか私に知らせてください。

于 2011-08-20T22:52:33.273 に答える
0

で 1.0a 認証を強制してみてくださいProvider.setOAuth10a(true)

また、クライアントの日付、時刻、およびタイムゾーンがすべて正しいことを確認することも価値があります。そうでない場合、署名の検証は失敗します。

于 2011-08-20T19:15:25.643 に答える