auth_codeのaccess_tokenおよびrefresh_tokenを取得するには、oauthにScribeを使用しています。最初の認証にはうまくいきました。 アプリケーションでクレデンシャルを無効にすると、アプリケーションにGmailに接続されたアプリケーションでトークンが引き続き存在します。 oauthを再度有効にすると、新しいauth_codeに有効な新しいaccess_tokenしか得られません。しかし、refresh_tokenはnullです。 oauthplaygroundと同じものを複製しようとしましたが、有効な更新とアクセストークンが表示されますが、遊び場トークンはまだGoogleの接続アプリに存在していました。Oauthを使用して電子メールを送信するためのGmail APIの再認証時にrefresh_tokenをnullにする
ここで私はここで、スクライブ-1.3.0 API
OAuthRequest oAuthRequest = new OAuthRequest(Verb.POST, "https://accounts.google.com/o/oauth2/token");
oAuthRequest.addBodyParameter("client_id", SMTP_OAUTH_CLIENT_ID);
oAuthRequest.addBodyParameter("client_secret", SMTP_OAUTH_CLIENT_SECRET);
oAuthRequest.addBodyParameter("scope", scope);
oAuthRequest.addBodyParameter("redirect_uri", GoogleApi.getRedirectURL());
oAuthRequest.addBodyParameter("code", authCode);
oAuthRequest.addBodyParameter("grant_type", "authorization_code");
Response response = oAuthRequest.send();
で実装コードがあるが、結果はまだ同じである、googleapi-クライアント1.20で試してみました同様のコードです。
GoogleTokenResponse tokenResponse = new GoogleAuthorizationCodeTokenRequest(
new NetHttpTransport(),
new JacksonFactory(),
SMTP_OAUTH_CLIENT_ID, SMTP_OAUTH_CLIENT_SECRET,
authCode,
GoogleApi.getRedirectURL())
.execute();
Credential gcredential = new GoogleCredential
.Builder()
.setTransport(new NetHttpTransport.Builder().build())
.setJsonFactory(new JacksonFactory())
.setClientSecrets(SMTP_OAUTH_CLIENT_ID, SMTP_OAUTH_CLIENT_SECRET)
.build()
.setFromTokenResponse(tokenResponse);
gcredential.refreshToken();
System.out.println(gcredential.getRefreshToken());
私が間違っている場所に誰かを助けることができますか? この問題を確認していただきありがとうございます。
SUPERあります。出来た。 –