BubbleでのGoogle APIリフレッシュトークンを用いたアクセストークンの取得方法

BubbleでのGoogle APIリフレッシュトークンを用いたアクセストークンの取得方法

Google API を Bubble で利用する際、アクセストークンは通常 1 時間(3600 秒)で期限切れ になります。そのため、リフレッシュトークンを使用して、新しいアクセストークンを取得する仕組みを実装 する必要があります。

本記事では、Bubble の API Connector を使用して、Google のリフレッシュトークンを活用し、アクセストークンを自動的に更新する方法 を詳しく解説します。

BubbleでGoogle OAuth 2.0 の設定方法は以下の記事で解説しております。

関連記事

Google Calendar API や Google Drive API、Gmail API などの Google アカウントに紐づいたサービスを Bubbleで利用するには、OAuth 2.0 を使用した認証が必要です。本記事では[…]

BubbleでGoogle OAuth 2.0 APIを設定する方法

期限切れのアクセストークンをリフレッシュ

初回認証時に取得したリフレッシュトークンを使用して、アクセストークンを取得する方法を解説します。

Pluginタブから「API Connector」を開き、”Add another call”をクリックして新しくAPI呼び出しを作成します。

次に、以下の内容で設定します。

メソッドとエンドポイント

メソッドPOST
エンドポイントhttps://oauth2.googleapis.com/token
Use asAction

Header

Content-Typeapplication/x-www-form-urlencoded
Body typeRaw
Bodyclient_id=_*_clientId_*_
&client_secret=_*_clientSecret_*_
&grant_type=refresh_token
&refresh_token=_*_refreshToken_*_

Body Parameter

clientIdクライアントID
clientSecretクライアントシークレット
refreshTokenリフレッシュトークン

このAPIを実行すると、以下のようなレスポンスを取得できます。

{  "access_token": "[新しいアクセストークン]",  "expires_in": 3599,  "scope": "[スコープ]",  "token_type": "Bearer",  "id_token": "[IDToken]"}

以上でリフレッシュトークンの取得に関する解説は終了です。

Google API へのアクセス時にアクセストークンの期限を確認する方法

ここまでリフレッシュトークンを用いたアクセストークンの取得方法について解説しましたが、ここからはアクセストークンの期限を確認する方法を解説します。

Google APIのアクセストークンの期限は1時間(3600秒)であるため、Google API へのアクセス時にアクセストークンの期限を確認し、期限が切れている場合にリフレッシュトークンを用いて新しいアクセストークンを取得する必要があります。

必要な情報

アクセストークンの期限を確認するためには、以下の情報が必要になります。

  • access_token: 実際に API リクエストに使用するトークン
  • expires_in: トークンの有効期間(通常3600秒)
  • 取得時間: トークンを取得した日時

access_tokenとexpires_inに関しては、前回アクセストークンを取得した際のレスポンスから保存する必要があり、取得時間はその保存したレコードのcreatedDate(もしくはModifiedDate)を参照します。

現在時刻と取得時間を比較

以上の情報を使用して、現在時刻と取得時間を比較します。

現在時刻 < 対象アクセストークン取得時間+expires_in(秒)、つまり期限が切れていない場合はそのままアクセストークンを使用できます。

現在時刻 > 対象アクセストークン取得時間+expires_in(秒)、つまりアクセストークンの期限が切れている場合は最初に開設した方法でアクセストークンを再度取得したうえでGoogle APIにアクセスする必要があります。

本記事では、Bubble の API Connector を活用し、リフレッシュトークンを用いてアクセストークンを更新する方法を解説しました。具体的には、Google OAuth 2.0 の設定方法、リフレッシュトークンを使用したアクセストークンの取得、アクセストークンの期限を確認する方法 を説明しました。

この仕組みを導入することで、Google API へのリクエストを安定的に実行することができます。適切なトークン管理を実装し、API 連携をスムーズに行いましょう!