Google Hangout Chatで部屋を作ったとき、部屋のルールを参加者に伝えたかった。だからBot機能を使って、人が参加したらその人にメンション付きでルールをメッセージしたかったのだが、Hangoutのbotだと部屋に人が参加したときのイベントを拾えないことがわかった。マジGM
(ADD_TO_SPACEでできるんじゃね?って思う方もいるかもしれないが、残念ながらこれは「Botが部屋に参加したときにBot自身が挨拶としてメッセージを投稿する」関数でしかないのだ)
だから、どちらかというとルールを定期的に投稿するスケジューラを作ったほうが良いことに気づいた。その作り方を書く。
Hangoutで部屋を作る
まず適当にテスト用の部屋を作る。
どうもHangout Chatだと部屋を消すことができぬらしいから、
もし作るなら他の人も似たような用途で使える部屋名にしたほうがいい。
「Botテスト会場(利用自由)」
なんかにね。
webhookを設定する
次はwebhookを取得する。これはメッセージを投稿する先の部屋のURLを作るようなもんだ。
こうやる。
名前は好きにしろ。画像も好きにしろ。
保存したら、webhookのURLをコピーしてメモしておけ。
これがメッセージの投下先の目印になる。
スクリプトを書く
GoogleAppsスクリプトエディタを開く
下をコピペして、①②を書き換える。
function message() {
// ①webhookのurlに書き変える
var url = "https~~";
var payload = {
// ②好きなメッセージを入れる。
"text" : "うわああああああああああああああああああああああ!!!!!!!(^q^)"
}
var json = JSON.stringify(payload); //エンコード
var options = {
"method" : "POST",
"contentType" : 'application/json; charset=utf-8',
"payload" : json
}
var response = UrlFetchApp.fetch(url, options);
}
実行ボタンを押してテストしてみよう。
そうすると、さっき作った部屋にメッセージが飛ぶ。
ここまでくればほぼ完成だ。
スケジューラを設定する
この時計っぽいボタンを押す。
そしたらトリガーを追加して、いい感じにスケジュールをセットしよう。
テストだから、分ベースのタイマーの1分おきにしよう。
仕上げ
これで君が作った実験場にメッセージを1分おきに飛ばすことができた。
もし別の部屋に作りたければ、別の部屋でwebhookを取ってコードのURLを書き換えて試せばいい。
止め方
もし君がそのBotを作ったなら、スケジュールを削除すればいい。
もし作者でなければ、webhookを消そう。