には、更新トークンを使用して新しいaccess_token
をフェッチするものは表示されないため、直接交換する必要があるようです。
Google's official OAuth 2.0 documentationはこれを低レベルで行う方法を説明しています。サーバー側のコード内では、このようになります要求を構築するためにあなたの好きなHTTPクライアントを使用します。
CLIENT_ID
と
CLIENT_SECRET
あなたは、元の認証に使用すると
REFRESH_TOKEN
がからリフレッシュトークンであるものと同じです
POST /o/oauth2/token HTTP/1.1
Host: accounts.google.com
Content-Type: application/x-www-form-urlencoded
client_id=CLIENT_ID&
client_secret=CLIENT_SECRET&
refresh_token=REFRESH_TOKEN&
grant_type=refresh_token
元の認証フロー。交換が成功した場合、あなたは次のようになります応じて新鮮なアクセストークンを受け取ります:
{
"access_token":"1/fFBGRNJru1FQd44AzqT3Zg",
"expires_in":3920,
"token_type":"Bearer",
}
あなたがものを必要なときに新しいアクセストークンをつかむために、このプロセスに従うことができます。 expires_in
の値を使用して新しい値を必要とするか、APIリクエストが401 HTTPステータスで応答するたびに更新を試みることができます。ルビーHTTPartyの宝石を使用して例えば
これはあなたのレールアプリケーションに実装しますか?たとえば、トークンを送信するhttpartyを使用してユーザーの連絡先を取得するリクエストを取得しました。トークンが期限切れになった場合、更新トークンを投稿する方法は何ですか? – Richlewis
上記のコードは、トークンを更新するPOSTリクエストを行うコードです。 GETリクエストを実行した後、応答コードが401であるかどうかを確認します。これは通常、トークンをリフレッシュする必要があるときに取得するコードです。 HTTPartyのレスポンスコード= 401なら、あなたのニーズに合わせて自分のコードを実行してください。 – Blake
優れている、私の仕事を得て、ありがとう – Richlewis