9

Google oauth Java パッケージを使用した認証の例を探していました: https://code.google.com/p/google-oauth-java-client/

このパッケージを使用して oauth2 認証の例を見つけることができましたが、oauth1 の例は見つかりませんでした。ドキュメントには、「典型的なアプリケーション フロー」の簡単な概要が示されていますが、詳細はすべて省略されています。

モノのパッケージを使用した oauth1 認証の例をどこで見つけることができるかについて、誰か提案はありますか?

4

2 に答える 2

12

Google の OAuth 1.0 ガイドおよびRFC 5849のgoogle-oauth-java-client JavaDoc に基づくと、例は次のようになります。

    OAuthHmacSigner signer = new OAuthHmacSigner();
    // Get Temporary Token
    OAuthGetTemporaryToken getTemporaryToken = new OAuthGetTemporaryToken(TOKEN_SERVER_URL);
    signer.clientSharedSecret = OAuth2ClientCredentials.CONSUMER_SECRET;
    getTemporaryToken.signer = signer;
    getTemporaryToken.consumerKey = OAuth2ClientCredentials.CONSUMER_KEY;
    getTemporaryToken.transport = new NetHttpTransport();
    OAuthCredentialsResponse temporaryTokenResponse = getTemporaryToken.execute();

    // Build Authenticate URL
    OAuthAuthorizeTemporaryTokenUrl accessTempToken = new OAuthAuthorizeTemporaryTokenUrl(AUTHENTICATE_URL);
    accessTempToken.temporaryToken = temporaryTokenResponse.token;
    String authUrl = accessTempToken.build();

    // Redirect to Authenticate URL in order to get Verifier Code
    System.out.println(authUrl);
    
    // Get Access Token using Temporary token and Verifier Code
    OAuthGetAccessToken getAccessToken = new OAuthGetAccessToken(ACCESS_TOKEN_URL);
    getAccessToken.signer = signer;
    getAccessToken.temporaryToken=temporaryTokenResponse.token;
    getAccessToken.transport = new NetHttpTransport();
    getAccessToken.verifier= "VERIFIER_CODE";
    getAccessToken.consumerKey = OAuth2ClientCredentials.CONSUMER_KEY;
    OAuthCredentialsResponse accessTokenResponse = getAccessToken.execute();

    // Build OAuthParameters in order to use them while accessing the resource
    OAuthParameters oauthParameters = new OAuthParameters();
    signer.tokenSharedSecret = accessTokenResponse.tokenSecret;
    oauthParameters.signer = signer;
    oauthParameters.consumerKey = OAuth2ClientCredentials.CONSUMER_KEY;
    oauthParameters.token = accessTokenResponse.token;
    oauthParameters.verifier = "VERIFIER_CODE";

    // Use OAuthParameters to access the desired Resource URL
    HttpRequestFactory requestFactory = new NetHttpTransport().createRequestFactory(oauthParameters);
    GenericUrl genericUrl = new GenericUrl("RESOURCE_URL");
    HttpResponse response = requestFactory.buildGetRequest(genericUrl).execute();
    System.out.println(response.parseAsString());

お役に立てれば。

于 2013-06-16T20:23:51.820 に答える
3

上記の例は非常に役に立ちました。

非標準の oAuth 1.0 実装でこのライブラリを使用する場合の注意事項。私はGoodreads oAuth APIを使用していましたが、oAuth 聖書が「失敗した OAuth 1.0a 3-Legged 実装」と呼んでいるもののようです。つまり、承認されたユーザーをコールバックにリダイレクトした後、検証コードを送り返しません。 URL。この場合、上記の VERIFIER_CODE を参照している行をすべて削除し、次を追加する必要があります。

signer.tokenSharedSecret = temporaryTokenResponse.tokenSecret;

行の前に:

OAuthCredentialsResponse accessTokenResponse = getAccessToken.execute();

理解するのにしばらく時間がかかったので、うまくいけば他の誰かを助けます。

于 2016-02-06T12:57:33.760 に答える