#はじめに
学びのアウトプットとしてQiita初投稿したいと思います。
最近自動化って面白いなと感じてるyamkです
#Google app Scriptとは
Google app Script(通称:GAS)とはGoogleが開発、提供しているプログラミング言語です。
名前くらい知ってんねん。何ができるか教えろやって方が多いと思うので
何ができるか簡単にまとめると...
- Googleのアプリケーション(スプレッドシートやGmailなど)をクラウド上で簡単に操作できる。
- 各社が提供しているAPIを用いて様々なサービス(Lineやslackなど)と連携ができる.
- 大体javascript っぽいのでなんとなくハードルが低い(主観、まじで主観)
などなど
私自身まだまだ知らないことも多いですが、ざっとこんなところ。
初めて知ったとき”これめっちゃ便利に使えるんでは?”と感動した覚えがあります。
#ゴミ出し通知botを作るに至る経緯
最近引越しをしまして、新しい地域のゴミ捨ての種類(月曜は可燃ごみの日やら、土曜はペットボトルやら..)が
全く覚えらへん!毎回毎回カレンダー見て今日は可燃ゴミね!とかもだるい!
ならラインで前日の夜に通知すれば確認も楽やなと思いbotを作ることに
#bot
とりあえずコード
function trash_res_bot() {
var accessToken = '########';
var date = new Date();
date.setDate(date.getDate() + 1);
var comment = [];
var f=1;
switch(date.getDay()) {
case 1:
comment.push('燃えるごみ')
break;
case 2:
comment.push('なんもなし')
break;
case 3:
comment.push('古紙・雑紙・古着')
break;
case 4:
comment.push('一般ごみ')
break;
case 5:
comment.push('びん・缶ごみ・スプレー缶')
break;
case 6:
if(f===1){
comment.push('燃やせないゴミ')
f=0
}
else{
comment.push('ペットボトル')
f=1
}
break;
}
if (comment.length < 1) return;
var text = '\n明日は' + comment.join('、') + ' の日です!\nゴミあるならだしなよ' ;
var message = text;
var options = {
'method' : 'post',
'headers': {
'Authorization': 'Bearer ' + accessToken
},
'payload' : {
'message': message
}
};
var response = UrlFetchApp.fetch('https://notify-api.line.me/api/notify', options);
Logger.log(response);
}
これを上から見ていきます。
function trash_res_bot() {
var accessToken = '########';
この部分ですね、
accessToken="#######";
Lineのアクセストークンを##### に入れてください.
以下リンクで自分のLINEアカウントでログインしたら、トークン発行でボタンあると思うので
コピペして#####の部分に貼り付けてください。
https://notify-bot.line.me/ja/
これでLINEとの連携はほぼ完了みたいな感じ。
var date = new Date();
date.setDate(date.getDate() + 1);
new Date()は実行したその年月日時分秒を取得する関数
今回ゴミ捨ては明日の情報が欲しいので、date+1になってる。
switch(date.getDay()) {
case 1:
comment.push('燃えるごみ')
break;
case 2:
comment.push('なんもなし')
break;
case 3:
comment.push('古紙・雑紙・古着')
break;
case 4:
comment.push('一般ごみ')
break;
case 5:
comment.push('びん・缶ごみ・スプレー缶')
break;
case 6:
if(f===1){
comment.push('燃やせないゴミ')
f=0
}
else{
comment.push('ペットボトル')
f=1
}
break;
}
この部分、明日が何曜日かで処理を変えている
0:日曜、1:月曜,...,6:土曜という対応になっている
今回case 6の部分は自分の地域では土曜が
燃えないゴミ→ペットボトル→燃えないゴミ→...
となっているので交互になるように雑に実装した。
あとはGASのトリガー機能で実行したい時間を適当にセット
自分は午後8時〜午後9時の間に届くようにした。
またGASのファイルの作り方やトリガー設定の仕方(需要あるのかしら)
とかは別でアウトプットしようかなと思います。
ラインの通知はこれをいじればなんとなくなんでも実装出来そう。
結論 GASは便利、LINE Notifyは神。
以上でございます。