Google Spreadsheetに外からhttpでURLを叩いてデータを保存する
Google Spreadsheetには外からhttpでURL を叩くことで簡単にデータを保存することが出来る。つまりRaspberry Piで取得したセンサーデータをGoogle Spreadsheetに保存するようなことが簡単に出来る。
基本的なやり方
1. Google Spreadsheetのスクリプトエディタにdo_get()関数を作りそこでhttpでgetが実行されたときのパラメータをシートに保存する処理を書く。
2. コードをウェブアプリとしてデプロイして生成されたURLに対してdo_get()関数にわたすデータをパラメータとして指定してhttpで叩く。
手順
空のスプレッドシートを作成してから以下の手順に従ってやれば多分出来る。
スクリプトエディタを開く
function doGet(e) {
var sheet = SpreadsheetApp.getActiveSheet();
sheet.appendRow([new Date(), e.parameter.value1, e.parameter.value2]);
}
上記の赤枠のコードを入力し「保存」する。
デプロイから「新しいデプロイ」を選ぶ。
「種類の選択」で「ウェブアプリ」を選ぶ。
上記の通り設定して「デプロイ」する。
アクセスを承認する。
googleの自分のアカウントを選択する。
「詳細」を押す。
「無題のプロジェクト(安全ではないページ)に移動」を押す。
「許可」を押す。
URLをコピーする。
https://script.google.com/macros/s/AKfycxxxxxxxxxxxxxxxxxxxxxxxxxxxALA/exec
上記のURLのexecの後ろに以下を追加してブラウザから開く。
?value1=ABC&value2=DEF
つまり
https://script.google.com/macros/s/AKfycxxxxxxxxxxxxxxxxxxxxxxxxxxxALA/exec?value1=ABC&value2=DEF
としてcurlやPythonから叩く。
import requests
value1='ABC'
value2='DEF'
SPREADSHEET_URL='https://script.google.com/macros/s/xxxxx/exec'
requests.get(SPREADSHEET_URL+f'?value1={value1}&value2={value2}')
上記のようにvalue1とvalue2で指定した値がスプレッドシートに入力される。
ソースコードを修正した場合について
なお、ソースコードを変更して実行する場合は「新しいデプロイ」をする必要がある。その際に、上記のURLが変更になる場合があるのでURLを確認する必要がある。変化しているのに気が付かないでいるとソースコードを変更したのに動作がおかしいということになる。
注意事項
当然のことながら上記で発行したURLは誰でも叩くことが出来るので自分以外の人には知られないように注意すること。
この記事が気に入ったらサポートをしてみませんか?