Google スプレッドシート・ノードを使おう

Googleスプレッドシートはオンラインで表計算が行える強力なツールです。GASというスクリプト言語で自動処理することができますが、手軽にNode-REDのフローからデータを扱うこともできます。

そこで、今回は、Googleスプレッドシート・ノードの使い方をご案内します。

作りたいフローのイメージ

例えば、Googleスプレッドシートのデータをfunctionノードで処理して、メールする、というフローを考えます。

作りたいフロー

Emailノードの設定方法は別の記事に記載していますので、そちらをご覧ください。

API 認証の秘密鍵を取得

google Developers Consoleにアクセスし、新規プロジェクトを作成します。

プロジェクトの選択

任意のプロジェクト名を入力し、「作成」ボタンをクリックします。

新しいプロジェクト

スプレッドシートをAPI操作する為にgoogleサービスアカウントを作成します。
認証情報画面で「サービスアカウントを管理」にアクセスします。

認証情報

「サービスアカウント」でサービスアカウントを作成」ボタンをクリックします。

サービスアカウント

サービス アカウント名を入力し、「作成」ボタンをクリックします。

サービス アカウントの権限(オーナーなど)を選択し、「続行」ボタンをクリックします。

サービス アカウントの作成

作成したサービスアカウントに「鍵を作成」をクリックします。

鍵を作成

出てくるポップアップでJSONを選択し、「作成」をクリックします。
秘密鍵のjsonファイルが自動にダウンロードされます。

秘密鍵の作成(JSON)

作成したサービスアカウントのメールアドレス(少し長いです。)をテキストでコピーしておきます。

サービスアカウントのメール

スプレッドシートAPIの有効化

コンソールの検索から今回作ったプロジェクトのGoogle Sheets APIを検索します。

GoogleSheetsAPIの検索
GoogleSheetsAPIの検索

Google Sheets APIの有効にするボタンを押して有効化します。

GoogleSheetsAPIの有効化
GoogleSheetsAPIの有効化

スプレッドシートの設定

フローで利用するスプレッドシートの共有ボタンをクリックします。

Googleスプレッドシートの共有
共有ボタンは、Googleスプレッドシートの右上にあります。

「ユーザを追加」の欄に作成したユーザーアカウントのメールアドレスを入力し、作成したサービスアカウントにスプレッドシートを共有します。

他のユーザーと共有

GoogleスプレッドシートのURLに含まれる文字列がスプレッドシートを特定するIDです。

https://docs.google.com/spreadsheets/d/*****スプレッドシートID*****/edit#gid=0

また、Googleスプレッドシートノードで使用するシート名を覚えておきます。

GoogleスプレッドシートのシートID

ノードの設定

ノードのプロパティ画面でcredsの編集ボタンをクリックします。

先ほどの秘密鍵のjsonの内容をそのまま貼り付けます。「Update」ボタンをクリックします。

データ取得

Methodは適切なものを選びます。例えば、セルのデータを取得したいときはGet Cellsを選択します。

gsheet-node methods

SpreadsheetIDに、先ほどサービスアカウントに共有したスプレッドシートのIDを入力します。

Cellsには、データを取得する範囲を指定します。全部のシートの内容を取得する場合はシート名だけを入力します。

右上のDoneをクリックします。

フローをデプロイして保存しましょう。

以上で、ノードを使用する準備が整いました。

まずはDebugノードで取得できるかどうかを確認しましょう。

enebular web flow editor

データ追加

データを追加したい場合は、MethodをAppend Rowに変更します。Cellsには、入力したいセルを指定します。

1行だけ追加する場合、例えば、[1,2,3]という配列をpayloadで渡してみます。

Injectノードのプロパティ
Injectノードのプロパティ

Google Sheets
Google Sheets

3行一気に追加することもできます。例えば、[[1,2,3],[4,5,6],[7,8,9]]という配列をpayloadで渡してみます。

Injectノードのプロパティ
Injectノードのプロパティ

Google Sheets
Google Sheets

先ほどの1行目のあとの2行目から3行が追加されています。

まとめ

今回は、Googleスプレッドシート・ノードを設定する方法をご紹介しました。

ぜひ試してみてください。