この数週間で、2つgoogle apps scriptを作った。
1個目は、スプレッドシートを読み込んで、HTMLテーブルのコードを出力するという。
これはスプレッドシート内で完結するので、すぐできるかなぁと思ったけど、出力結果をどう出すか?で悩んだ。
自分以外の人にも使ってもらう予定もあるので、出力結果がgoogleドライブ内にできちゃうと面倒。
ポップアップで出したかったのだけど、javascriptの世界になっちゃうのか?
結局上手くできなくて、メールに添付して送ることにした。
(メール本文だと、文字数の制限で折り返しが入ってしまい・・・)
2つ目。こっちのほうが、参考サイトが沢山あったのでよかった。
メール → メール
をやりたいんだけど・・・
一定時間内にメールがあった時のみ、まとめメールを送りたい。タイマーで。みたいな。
入り口のメールは、他の人の管理だから、通常のメールを受けなければならず。
結局、タイトルの通り
メール(→zapier)→google カレンダー(→google apps script)→メール
で実現。
うーん、前こんなの作った?微妙にちがうよねー。
zapier もしーばらくログインしてなくて(汗)いつものことだけど。
いつものことだけど、あのサービス何だっけ・・・とつづりを検索するところから(汗)
こんなにお世話になっているのにね!
メールをトリガーに・・・っていうのが、どうも有料設定ぽくって、こちらの方が無料で使う方法を教えてくれていました。
で、カレンダーに入ったら、あとは前にも作ったから。
ここで、ちょっとメモ。
今、google app script って、他のgoogle apps(ドキュメントとかスプレッドシート)から「ツール」で入らなくても、独立して使えるんですね。
・・・という話を含めて、まず参考にしたのが以下。
https://qiita.com/mi0/items/d55324db83c4e98ae3fa
これはかなりわかりやすいですねー
ありがとうございます。
上記コードでは、カレンダーイベントを丸一日分全部持ってくるんだけど、今回やりたい「〇時から〇時の間」だけ取得する関数もある。
https://developers.google.com/apps-script/reference/calendar/calendar-app#geteventsstarttime-endtime
のでこちらに替えて。
なんで1000をかけるんだっけ?とりあえず
https://qiita.com/tscp/items/2b379482d379777fb9cc
あと、今回、「毎日7時と12時に実行」をしたいんだけど。
これは、google apps script のトリガー管理(これもむちゃくちゃ立派になってる)で、関数呼び出しができそうなんだけど。
残念ながら、〇時〇分ピッタリっていう実行ができない。
(キット毎正時とかにサーバー負荷がかかるのを防ぐ目的だろう。前にもドキュメント生成がたくさんかぶって動かないこともある、って話も中の人に聞いたし)
そこまで厳密でなくていいので、今回はこの仕様に従うことにした。
てか、ほんとGASって文字型のこととか考えなくていいから楽。
こんなんでいいのかなーという気にもなるけど。