我一直在寻找使用 google oauth java 包进行身份验证的示例: https ://code.google.com/p/google-oauth-java-client/
我已经设法使用这个包找到了 oauth2 身份验证的示例,但我找不到 oauth1 的任何示例。该文档提供了“典型应用程序流程”的简要概述,但它忽略了所有细节。
有人对我在哪里可以找到使用 thing 包的 oauth1 身份验证示例有任何建议吗?
我一直在寻找使用 google oauth java 包进行身份验证的示例: https ://code.google.com/p/google-oauth-java-client/
我已经设法使用这个包找到了 oauth2 身份验证的示例,但我找不到 oauth1 的任何示例。该文档提供了“典型应用程序流程”的简要概述,但它忽略了所有细节。
有人对我在哪里可以找到使用 thing 包的 oauth1 身份验证示例有任何建议吗?
基于来自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());
希望这可以帮助。
上面的例子非常有用。
关于将此库与非标准 oAuth 1.0 实现一起使用的说明。我使用的是Goodreads oAuth API,它似乎是oAuth 圣经所说的“失败的 OAuth 1.0a 3-Legged 实现”,这意味着它在将授权用户重定向回您的回调后不会发回验证码网址。在这种情况下,您需要删除上面提到 VERIFIER_CODE 的所有行并添加:
signer.tokenSharedSecret = temporaryTokenResponse.tokenSecret;
行前:
OAuthCredentialsResponse accessTokenResponse = getAccessToken.execute();
我花了一段时间才弄清楚,所以希望能帮助别人。