本記事では、Google Calendar APIにアクセスするためのOAuth2.0認証を実装する方法を解説します。
Google Calendar APIの認証をBubbleアプリに実装することで、アプリユーザーはBubbleアプリと特定のデータを共有することができます。
例えば、Bubbleで開発されたスケジュールアプリに認証機能を追加することで、Bubbleアプリで作成されたスケジュールとGoogleカレンダーのスケジュールを同期することが可能になります。
そもそもBubbleの使い方がわからないという方は、以下の記事を先にご覧になることをおすすめします。
Bubbleの登録から簡単な使い方について解説しています。
目次
Google Cloud Platformの設定
User Typeは外部
アプリ情報は任意で設定します
スコープは追加しなくて大丈夫です
リダイレクトURIには、Bubbleアプリの任意のページ(認証後に戻ってくるページ)を指定
OAuth2.0サーバーへのリダイレクト
アプリケーションがGoogleのOAuth 2.0サーバーと対話し、ユーザーに代わってAPIリクエストを実行することで、ユーザーの同意を取得する方法を示します。
アプリケーションは、ユーザー認証を必要とするGoogle APIリクエストを実行する前に、その同意を得る必要があります。
大まかなステップは以下の通りです。
- アプリケーションは、必要な権限のリストとともにユーザーをGoogleにリダイレクト
- ユーザーは、アプリケーションに権限を許可
- アプリケーションはユーザーに代わってAPIリクエストを実行







アクセストークンとリフレッシュトークンの取得
ユーザーがアクセス要求を認証すると、応答には認証コード(“code”)が含まれます。ユーザーがリクエストを承認しない場合、レスポンスにはエラーメッセージが含まれます。
エラー応答
https://testapp.bubbleapps.io/page?error=access_denied
認証応答
https://testapp.bubbleapps.io/page?code=4/P7q7W91a-oMsCeLvIaQm6bTrgtp7
認証コードと引き換えにトークンを取得することで、エンドユーザーのデータにアクセスすることが可能となります。
トークンには「アクセストークン」と「リフレッシュトークン」の2種類があり、APIリクエストに使用するアクセストークンは期限が短く、期限が切れたときはリフレッシュトークンで更新します。
これらトークンの引き換えにはAPIを使用します。
「SAVE」をクリックします
トークンを取得するワークフローの設定
認証コードのリクエストは外部ページを開くため、アクションを続けて設定することはできません(Bubbleのワークフローでは、”Open an external website”は最後のアクションでなければならない)。
そのためトークン取得のAPIは、認証リクエストから戻ってきたとき、かつ”code”パラメータが存在するときに発火させます。
認証→トークン取得の結果
これでBubbleアプリからGoogleカレンダーの権限をリクエストするフローが実装できました。

リフレッシュトークンはGoogleアカウントがそのアプリに対して認証を許可した初回のみ発行されます。
そのため、ここまでの手順で認証をテストしていると、そのGoogleアカウントではリフレッシュトークンが発行されない場合があります。
Googleアカウントからアプリの認証を取り消すには、Googleアカウントの管理画面 > セキュリティ > アカウントのアクセスできるサードパーティアプリ > 「アクセス権を削除」で消すことができます。