Google からアクセス トークンを取得したいです。Google APIによるとアクセス トークンを取得するには、コードとその他のパラメータをトークン生成ページに送信すると、次のような JSON オブジェクトが応答として返されます。
{
"access_token" : "ya29.AHES6ZTtm7SuokEB-RGtbBty9IIlNiP9-eNMMQKtXdMP3sfjL1Fc",
"token_type" : "Bearer",
"expires_in" : 3600,
"refresh_token" : "1/HKSmLFXzqP0leUihZp2xUt3-5wkU7Gmu2Os_eBnzw74"
}
しかし、リフレッシュ トークンを受信していません。私の場合の応答は次のとおりです。
{
"access_token" : "ya29.sddsdsdsdsds_h9v_nF0IR7XcwDK8XFB2EbvtxmgvB-4oZ8oU",
"token_type" : "Bearer",
"expires_in" : 3600
}
ベストアンサー1
はrefresh_token
、ユーザーからの最初の承認時にのみ提供されます。OAuth2 統合のテスト中に行うような後続の承認では、 はrefresh_token
再度返されません。:)
- アカウントにアクセスできるアプリを表示するページに移動します。https://myaccount.google.com/u/0/permissions。
- 「サードパーティ アプリ」メニューでアプリを選択します。
- 「アクセスを削除」をクリックし、「OK」をクリックして確定します
- 次に行う OAuth2 リクエストでは、
refresh_token
(「access_type=offline」クエリ パラメータも含まれている場合) が返されます。
prompt=consent&access_type=offline
あるいは、 OAuthリダイレクトにクエリパラメータを追加することもできます(GoogleのWeb サーバー アプリケーション向け OAuth 2.0ページ)。
これにより、ユーザーにアプリケーションを再度承認するように要求し、常に が返されますrefresh_token
。