1

twitter/facebook などのソーシャル ネットワークでの認証用の scribe を調べ始めたところです。参考として twitter の例を使用しています。ただし、何らかの理由で twitter から oauth_verifier を取得していないようです (コールバックはサービスビルダーを介して登録されていますが、別のソーシャル API で動作するため、コールバックで localhost を使用しています)。役立つ提案は大歓迎です。前もって感謝します。

OAuthService service = new ServiceBuilder()
.provider(TwitterApi.class)
.apiKey(consumerKey)
.apiSecret(consumerSecret)
.callback("http://localhost/oauth/twitter")
.build();

        //get the token
        Token requestToken = service.getRequestToken();

        String authUrl = service.getAuthorizationUrl(requestToken);
        Logger.info("authurl::" + authUrl); // not getting the oauth_verifier

スクライブからのデバッグ出力(トークン情報を変更しました):

setting oauth_callback to http://localhost/oauth/twitter
generating signature...
base string is: POST&http%3A%2F%2Fapi.twitter.com%2Foauth%2Frequest_token&oauth_callback%3Dhttp%253A%252F%252Flocalhost%252Foauth%252Ftwitter%26oauth_consumer_key%3DAAACCCV6ASDFGHJCgYBCD%26oauth_nonce%3D607134093%26oauth_signature_method%3DHMAC-SHA1%26oauth_timestamp%3D1353965859%26oauth_version%3D1.0
signature is: +mSqKJIC1Q0pMEFs/gIJViF7kbg=
appended additional OAuth parameters: { oauth_callback -> http://localhost/oauth/twitter , oauth_signature -> +mSqKJIC1Q0pMEFs/gIJViF7kbg= , oauth_version -> 1.0 , oauth_nonce -> 607134093 , oauth_signature_method -> HMAC-SHA1 , oauth_consumer_key -> AAACCCV6ASDFGHJCgYBCD , oauth_timestamp -> 1353965859 }
using Http Header signature
sending request...
response status code: 200
response body: oauth_token=itJrpOP3KLeD7Ha6oy0IRr4HysFut5eAOpIlj8OmNE&oauth_token_secret=X8LmhAUpvIkfEd7t7P1lvwwobC3JJIhUabcEs0Rn5w&oauth_callback_confirmed=true
authurl::https://api.twitter.com/oauth/authorize?oauth_token=itJrpOP3KLeD7Ha6oy0IRr4HysFut5eAOpIlj8OmNE
obtaining access token from http://api.twitter.com/oauth/access_token
setting token to: Token[itJrpOP3KLeD7Ha6oy0IRr4HysFut5eAOpIlj8OmNE , X8LmhAUpvIkfEd7t7P1lvwwobC3JJIhUabcEs0Rn5w] and verifier to: org.scribe.model.Verifier@55ac8c3d
generating signature...

更新: oauth_verifier を受け取ることができるようになりました。テストが完了したら、この投稿を更新します。

4

1 に答える 1

1

主にパイロットエラー。scribeを使用してTwitterでoauthを動作させることができました。サービス、サービスからのリクエストトークン、そしてサービスからのauthorizationUrlを取得した後(リクエストトークンを渡しながら)、認証URLにリダイレクトすることができました。そこで、Twitter IDを使用してTwitterに対して自分自身を認証することができました。これにより、サービスの作成時に指定したコールバックURLにリダイレクトされました。認証時に、ベリファイアの作成に使用できるoauth_verifierを受け取り、ベリファイアとリクエストトークンを使用してサービスからアクセストークンを受け取りました。次に、oauthリクエストが作成されて署名され、ユーザーの詳細が記載されたTwitterからの応答が返されました。働いた。それが役に立てば幸い。

于 2012-11-27T23:42:17.883 に答える