2
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

GoogleChatで定期的にメッセージを投下するbotを作る!

Last updated at Posted at 2020-04-19

Google Hangout Chatで部屋を作ったとき、部屋のルールを参加者に伝えたかった。だからBot機能を使って、人が参加したらその人にメンション付きでルールをメッセージしたかったのだが、Hangoutのbotだと部屋に人が参加したときのイベントを拾えないことがわかった。マジGM
(ADD_TO_SPACEでできるんじゃね?って思う方もいるかもしれないが、残念ながらこれは「Botが部屋に参加したときにBot自身が挨拶としてメッセージを投稿する」関数でしかないのだ)

キャプチャ.PNG

だから、どちらかというとルールを定期的に投稿するスケジューラを作ったほうが良いことに気づいた。その作り方を書く。

1.png

Hangoutで部屋を作る

まず適当にテスト用の部屋を作る。
どうもHangout Chatだと部屋を消すことができぬらしいから、
もし作るなら他の人も似たような用途で使える部屋名にしたほうがいい。

「Botテスト会場(利用自由)」

なんかにね。

1.png

webhookを設定する

次はwebhookを取得する。これはメッセージを投稿する先の部屋のURLを作るようなもんだ。

こうやる。
名前は好きにしろ。画像も好きにしろ。
保存したら、webhookのURLをコピーしてメモしておけ。
これがメッセージの投下先の目印になる。

2.png

3.png

4.png

スクリプトを書く

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);
}

 
実行ボタンを押してテストしてみよう。

5.png

そうすると、さっき作った部屋にメッセージが飛ぶ。
ここまでくればほぼ完成だ。

スケジューラを設定する

この時計っぽいボタンを押す。
そしたらトリガーを追加して、いい感じにスケジュールをセットしよう。
テストだから、分ベースのタイマーの1分おきにしよう。

キャプチャ.PNG
6.png
7.png

仕上げ

これで君が作った実験場にメッセージを1分おきに飛ばすことができた。
もし別の部屋に作りたければ、別の部屋でwebhookを取ってコードのURLを書き換えて試せばいい。

止め方

もし君がそのBotを作ったなら、スケジュールを削除すればいい。
8.png

もし作者でなければ、webhookを消そう。

こうして、こう
image.png
9.png

2
3
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
2
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?