新人マネージャー奮闘記

新人マネージャーがあくせくしています。

Hangouts ChatのAPIで通知BOTを作る

Gsuiteを使っている人は、Hangouts Chatが社内コミュニケーションツールだったりするけど、

Slackみたいに書いてくれている人があまりいないのでまとめる。

 

まずはJSからポストして、チャットルームにメッセージを送る場合。

なにを送るかはあなたのアイデア次第。

 

function checklog () {
console.log(this.responseText); //動作確認用
}

var url = "ここにWebhookのURLを入れる";
var text ="ここに送信したメッセージを入れる";

var request = new XMLHttpRequest();
request.addEventListener("load",checklog); //動作確認用
request.open("POST", url);
request.setRequestHeader('Content-Type','application/json; charset=UTF-8');

var obj = {"text":text};
var json = JSON.stringify(obj); //エンコードしないとエラーになる

request.send(json);

 

 

WebhookのURLはチャットルーム名をプルダウンしたところにあります。

 

f:id:twenty-november:20180614231844p:plain

Webhookを追加するときに決める名前はBOTの名前。

あとで変えれるのでテキトーでOK。

 

次にGAS(Google Apps Script)からポストする場合。

Googleフォームとかスプレッドシートの通知に使いたい人用。

 

GASではXMLHttpRequestが使えないので、

UrlFetchApp.fetchを使わないとだめらしい。

 

function test(){

var url = "ここにWebhookのURL";
var text = "ここに送信したいメッセージ"

var payload = {
"text" : text
}

var json = JSON.stringify(payload); //エンコード

// ポストするためにヘッダーとかボディをまとめて入力する
var options = {
"method" : "POST",
"contentType" : 'application/json; charset=utf-8',
"payload" : json
}

var response = UrlFetchApp.fetch(url, options); //XMLHttpRequestが使えないのでこっちでポスト

}

 

プロジェクトのトリガーをフォームの送信とかにすれば、

メールフォームに問い合わせが入るたびにHangout Chatに通知してくれる。

 

トリガーの変更はここにあります。

f:id:twenty-november:20180614234359p:plain

 

現在のプロジェクトのトリガーから追加すればOK。

functionごとにトリガーを選べるので、今回のスクリプトを選んでください。