読者です 読者をやめる 読者になる 読者になる

Memorandum and Diary

2017年はザコい英語力・カスい筋力をどうにかする

google apps script + slack api 【002】slackの呼びかけに応答

【001】では,ひとまずslackに初ポストした.今回は次にslackから呼びかけられて起動して応答するというもの.

thetree.hatenadiary.jp

使用するのは Outgoing WebHooks という Custom Integration.まずは準備として導入しておく.

api.slack.com

Outgoing WebHooks : トリガーとなる言葉に反応して指定のURLにPOSTを行う.

⇒ slack の呼びかけに反応して指定のアプリケーションを起動させる.

1. google apps script を作成.
function doPost(e) {
  var token = PropertiesService.getScriptProperties().getProperty('SLACK_ACCESS_TOKEN');
  var bot_name = "TheTree";
  var bot_icon = "http://i.imgur.com/DP2oyoM.jpg";
  var app = SlackApp.create(token);
  var message = "はい、こんにちは"
  
  return app.postMessage("#general", message, {
    username: bot_name,
    icon_url: bot_icon
  });
}

内容は前の記事とほとんど変わらん.イベントハンドラdoPost()関数を使用する.

2. 作成したやつをウェブアプリケーションとして導入(URLを取得)

ツールバー[公開] > [ウェブアプリケーションとして導入]ウェブアプリケーションとして導入され,そのURL取得できる.

ウェブアプリケーションとして導入したあとの更新の注意点.

thetree.hatenadiary.jp

3. Outgoing WebHooks でトリガーとなる言葉,取得したURLを指定.

f:id:TheTree:20170306021620p:plain

Channelは及ぶ範囲.Trigger Wordに自分でトリガーとなる言葉入れて,URLは取得したURL入れる.完成.

4.できた!

当然,これをするとslackの発言に応じた応答をしたくなる.slackからくるデータのアクセス方法

f:id:TheTree:20170306022123p:plain

画像のようなデータ内容でPOSTとして,slackからの発言は飛んで来るよ,とOutgoing WebHooksに例示されている.

それをdoPost(e)eが受け取ってくれる形.それぞれのアクセスは e.param.user_nameとか.特にtextっていうやつがslack空飛んできた発言の内容.

要するにeにすでにデータ入っているのでそれに応じて応答するのもわりと簡単.とても扱いやすくてよい.

参考

初心者がGASでSlack Botをつくってみた - CAMPHOR- Tech Blog