我通过浏览器Javascript获取请求令牌。
以下Java代码可以将其用于访问令牌。
import com.google.api.client.googleapis.auth.oauth2.GoogleTokenResponse;
import com.google.api.client.googleapis.auth.oauth2.GoogleAuthorizationCodeTokenRequest;
GoogleTokenResponse tokenResponse = new GoogleAuthorizationCodeTokenRequest(TRANSPORT, JSON_FACTORY, clientId, clientSecret, authCode, "postmessage").execute();
我的问题是谷歌图书馆电话的占用空间相当大。
因此,我尝试了scribe(Kobee1203 oauth 2.0 fork)。它对我不起作用:
OAuthService service = new ServiceBuilder()
.provider(GoogleApi20.class)
.apiKey(apiKey)
.apiSecret(apiSecret)
.scope(SCOPE)
.grantType(OAuthConstants.GRANT_TYPE_AUTHORIZATION_CODE)
.accessType("offline")
.build();
Verifier verifier = new Verifier(authcode);
Token accessToken = service.getAccessToken(null, verifier);
谷歌回复和错误抱怨和间接重定向网址。在api控制台中没有设置重定向URL,前一代码在没有。
的情况下工作正常我想要一个基于Java的轻量级解决方案来交换请求 - 访问令牌进行一次基本授权呼叫。它不一定非得抄写。
答案 0 :(得分:0)
这只是一个REST URL,您可以直接从您的应用程序构建和调用。
如果您完成Oauth Playground https://developers.google.com/oauthplayground中的步骤,则可以看到网址和回复。例如,要将身份验证代码转换为刷新令牌,您可以调用
POST /o/oauth2/token HTTP/1.1
Host: accounts.google.com
Content-length: 250
content-type: application/x-www-form-urlencoded
user-agent: google-oauth-playground
code=4%2FcQ7Nh2AZL3QgfynGKSloFTND3hlv.8jT4Txflqs8WXE-sT2ZLcbQTyOPFgQI&redirect_uri=https%3A%2F%2Fdevelopers.google.com%2Foauthplayground&client_id=407408718192.apps.googleusercontent.com&scope=&client_secret=************&grant_type=authorization_code