9
4

More than 1 year has passed since last update.

【enebular】Node-RED でGoogleスプレッドシートに読み書きする

Last updated at Posted at 2022-09-26

Node-RED でGoogleスプレッドシート に読み書きする方法を毎回忘れるので、自分用備忘録を兼ねてここに書き留めておきます。

Google Cloud Platform での設定

API発行

Google Cloud Platform を開く
https://console.cloud.google.com/apis/dashboard

以下の画像の矢印のところをクリック
Image from Gyazo

「新しいプロジェクト」をクリック
Image from Gyazo

新しいプロジェクトができたら

「APIとサービスの有効化」
Image from Gyazo

「Google Sheets API」 を検索し、「有効にする」をクリック
Image from Gyazo

認証情報 > 認証情報を作成
Image from Gyazo

APIキーを選択
Image from Gyazo

APIキーができる。
Image from Gyazo

API キーを控えておく


鍵の作成

サービスアカウントの管理をクリック
Image from Gyazo

サービスアカウント作成をクリック
Image from Gyazo

サービスアカウント名を入力し、「作成して実行」をクリック
Image from Gyazo

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

自分以外に許可する場合は入力だと思う。(違ったらすいません)

で、完了。
Image from Gyazo

鍵を管理をクリック
Image from Gyazo

鍵を追加 > 新しい鍵を追加
Image from Gyazo

JSON を選んで作成
Image from Gyazo

秘密鍵のJSONファイルがダウンロードされる。
あとで使うので保存場所を覚えときましょう。

そして、作成したサービスアカウントのメールアドレスを控えておきます。
Image from Gyazo

Googleスプレッドシートの設定

Googleスプレッドシートの該当のファイルを開き、
「共有」をクリック
Image from Gyazo

「ユーザやグループを追加」に先ほどのサービスアカウントのメールアドレスを入力

Image from Gyazo

GoogleスプレッドシートのURLから、SpreadSheetIDを控える。 (後で使う)
以下のように、d/ と /edit の間がSpreadSheetIDです。

https://docs.google.com/spreadsheets/d/{SpreadSheetID}/edit#gid=0

enebular

Gsheetノードをインポート

ノードについての詳細はこちらを参照
https://flows.nodered.org/node/node-red-contrib-google-sheets

パレットの管理
Image from Gyazo

1、ノードを追加
2、「Gsheet」 で検索
3、ノードを追加
Image from Gyazo

追加
Image from Gyazo

「ノードをパレットに追加しました」とメッセージが出たらOK

Googleスプレッドシートからデータを取得

まずは、以下のようにノードを繋げる。
Image from Gyazo

GSheet ノードをダブルクリック

以下の画像の鉛筆マークをクリック
Image from Gyazo

さきほど作成した鍵のJSON をメモ帳などエディターで開き、JSONの内容をすべてコピーして、Creds へペーストする。
Image from Gyazo

次にGSheetノードを以下のように編集する。

  • Method : Get Cells
  • SpreadsheetID : さきほど控えたSpreadsheetID
  • Cells : シート名+セル
    セルは複数選択できる。
    (例)A2:A100 、 A2:E10

Image from Gyazo

これで、Injectノードを実行すると、デバッグウィンドウにGoogleスプレッドシートの値が表示されます。

Googleスプレッドシートにデータを入力

Gsheet ノードのMethod を Append Row にするだけ。

Image from Gyazo

Inject ノードを実行すると、userシートのセルA2にタイムスタンプが書き込まれる。
A2にすでになにかデータがある場合はA3に書き込まれる。

ちなみに、Update Cells だと、セルを上書きする。
Clear Cells だと、セルの情報を消去する。

以上、Googleスプレッドシートの読み書きは、コードを書くと結構面倒だけど、このノードのおかげで結構簡単にできる。

9
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
9
4