Google Apps Script を利用したWebhook (POST) によるスプレッドシートへの書き込み では、Google Apps Script ( GAS ) に POST リクエスト をして Google スプレッドシートへの書き込みについて紹介をしました。今回は GAS への GET リクエストによるスプレッドシートデータの取得方法を確認します。
Claris FileMaker Pro から GAS へリクエスト送信
今回も GAS へのリクエストを送信するためのクライアントとして FileMaker Pro を使用します。FileMaker Pro の「URL から挿入」スクリプトステップを使用し、GAS に GET リクエストをします。
cURL オプション
・cURL で HTTP リクエストをする際、デフォルトが GET リクエストとなっているため “-X GET” オプションを省略することができます。
・cURL で GAS にリクエストをする際、リダイレクトすることでレスポンスを取得することができます。リダイレクト先の URL は、GAS へのリクエストの戻り値として1度受け取ります。そして受け取った URL にリダイレクトするには”-L” オプションをつけます。
GAS で実行する処理
今回使用したコードは、FileMaker Pro からのリクエストで実行開始し、スプレッドシート内に存在するすべてのデータを取得します。そして、取得した情報とエラー内容をレスポンスとして FileMaker Pro に返します。
以下では GAS によるスプレッドシートとの操作について少しだけご紹介します。
スプレッドシートからデータを取得する
GAS でスプレッドシートからデータを取得したい場合は、まずスプレッドシートをファイルで取得する必要があります。それは次の1行で行うことができます。
スプレッドシートの ID は スプレッドシートの URL に存在します。
※ID: 1-xR9VCzJZvARzm_fuAdhsldl8cWv7cKntZNdnSd0
取得したファイル情報から、更にシート情報をシート名を指定して取得します。
今回のコードでは、次の1行でシート内のデータが存在する範囲すべてのデータを取得しています。
getDataRange() は、シート内のデータが存在する範囲すべてのデータを取得します。データの取得範囲は自由に指定することができ、getRange() や getLastRow() などがあります。
getValues() はシートのデータを取得する際には必須のメソッドで、複数のセルの値を2次元配列で取得することができます。
これらの方法を使用して取得したデータをレスポンスとして FileMaker Pro に返します。
今回レスポンスとして取得した値は以下の画像の通りです。
まとめ
今回は、FileMaker Pro から GAS への GET リクエストによるスプレッドシートデータの取得方法についてご紹介しました。
ご紹介したコードでは、GAS 側で予め1つのスプレッドシートで固定していました。しかし、FileMaker Pro から GAS に送信する URL パラメータに、「取得したいシートの範囲」、「スプレッドシートのID」、「取得したいシートの名前」といった情報を付与することで、FileMaker Pro 側から任意のスプレッドシートの好きな範囲のデータをリクエストする仕組みを構築することもできます。