(Bubble)Google DocsにAPI経由でアクセスする(準備編その2)

概要

Google DocsにAPI経由でアクセスする方法を説明しています。
前回は、プロジェクトの登録など、アクセスに必要な準備を行いました。(こちらをご覧ください)
今回は、Bubble側での準備を行います。

準備するもの

アクセストークン、リフレッシュトークン、クライアントID、クライアントシークレット、アプリのスコープ、トークンの有効期限。
BubbleにGoogleTokenテーブルを作って、各データを含んだレコードを1つだけ作成しておきます。

画像8

用語の説明

・アクセストークン・・・APIにアクセスするためのトークン。3600秒で期限が切れる。更新したら別な文字列に変わる。
・リフレッシュトークン・・・期限が切れたアクセストークンを更新(リフレッシュ)するためのトークン。基本的に変わらない。

uURLでトークンのリフレッシュの動作確認

Bubbleに組み込む前に、以下のようにcURLでトークンのリフレッシュができるか確認をしておきます。

curl -XPOST https://www.googleapis.com/oauth2/v4/token –data “client_secret=[クライアントシークレット]&grant_type=refresh_token&refresh_token=[リフレッシュトークン]&client_id=[クライアントID]”

うまくいくと、以下のように新しいアクセストークンが返ってきます。

{
“access_token”: “ya29.abcdefg1234567”,
“expires_in”: 3599,
“scope”: “https://www.googleapis.com/auth/documents”,
“token_type”: “Bearer”
}

BubbleのAPI Connectorに設定する

API Connectorプラグインをインストールしておきます。
API Connectorプラグインの設定画面を開き、「Add another API」で、「Google API」としてAPI名をつけておきます。

画像5


「Add another call」をクリックして、以下のcallを追加します。
・Name: Refresh Token Call
・Use as: Action
・Data type: JSON
・POST
・https://accounts.google.com/o/oauth2/token

「Add parameter」で、以下の4項目を追加します。grant_type以外は後で設定するので、valueは空にして、「Private」のチェックを外します。
・grant_type : refresh_token
・client_id
・client_secret
・refresh_token

画像2

「Manually enter API response」をクリックします。(「Initialize call」は使わず、手動で結果を設定します)
cURLであらかじめ取得しておいた結果を入力、または下記をコピペします。(JSONの各項目名と型が指定できればよいので)

画像3

{
“access_token”: “abcdefg1234567”,
“expires_in”: 3599,
“scope”: “https://www.googleapis.com/auth/documents”,
“token_type”: “Bearer”
}

各項目の型を設定します。
access_token、scope、token_typeはtext型、expires_inはnumber型に設定されるので「SAVE」をクリックします。

画像4

Bubbleでトークンのリフレッシュの動作確認

デザイン画面でボタンを配置し、Workflowに以下の2つのアクションを設定します。

(step 1)APIの呼び出し

「plugin」ー「Google API – Refresh Token Call」を選択します。
各パラメタを、「Insert dynamic data」の「Do a search for」を使って代入します。

画像6

(step 2)呼び出し結果のaccess_tokenを保存

「Data(Things)」ー「Make changes to thing」を選択します。
・DBのaccess_tokenを、ステップ1で取得した値で更新します。
・Expire Dateを、現在時刻 + ステップ1で取得したexpires_in – 60秒で更新します。(タイミングによっては期限をギリギリにすると期限切れになることがあるので、期限より60秒前にしてあります)

画像8

動作確認

Step-by-stepで実行して動作を確認します。
(step 1)API呼び出しでパラメタが空の場合は、DBのテーブルのプライバシー設定を確認します。
(step 2)呼び出し結果が保存されない場合は、Things to changeを確認します。

DBの画面を開き、「Refresh data」をクリックして最新化し、access_tokenやModified Dateが書き変わっていることを確認します。

次回

次回はいよいよGoogle Docs APIにアクセスして、文書のコピーや文字列の置換やPDF出力などを行います。

参考URL

Google DocsにAPI経由でアクセスする(準備編その1)
 https://qiita.com/jansnap/items/0b11b28460e1c4d7322f
Bubbleから自作APIを呼び出す(API Connector)
 https://note.com/jansnap/n/nf41daf8717e2
Google Play Developer API – 更新トークンを使用する
 https://developers.google.com/android-publisher/authorization?hl=ja#using_the_refresh_token

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です