
bot@と送るとhelloと返ってくるBOTをコードで実現する例です
コードを使わずに実現する方法は明日書きます
Customize Slack > Slackbot
- Google Apps Scriptで応答用のアプリケーションを作る
- Slack側の設定をする
1. Google Apps Scriptで応答用のアプリケーションを作る
コード.gsを書いて保存する
コード.gs
var TOKEN = "取得したtoken" var POST_URL = 'https://slack.com/api/chat.postMessage'; function doPost(e) { var payload = { token: TOKEN, channel: '#general', text: "hello", icon_emoji: ':sunny:', username: 'hello bot' }; var params = { 'method': 'post', 'payload': payload }; UrlFetchApp.fetch(POST_URL, params); } |
意訳.gs取得したtokenを設定する メッセージを送るurlを設定する この機能は以下を実行する payloadのデータを作る 取得したtokenを設定 投稿するchannelを設定 投稿するtextを設定 アイコンの絵文字を設定 usernameを設定 paramsのデータを作る methodをpostに設定 payloadのデータを設定 paramsを付けてslackのAPIをたたく |
公開>ウェブアプリケーションとして導入...をクリックする
プロジェクトバージョン:説明を入力(例ではfirst version)
次のユーザとしてアプリケーションを実行:自分
アプリケーションにアクセスできるユーザー:全員(匿名ユーザーを含む)
許可を確認をクリックする
アカウントを選択する
許可をクリックする
現在のウェブアプリケーションのURLを
Slack側の設定のIntegration SettingsのURLに入力する
2. Slack側の設定をする(Outgoing Webhookの設定)
左サイドのexpand_moreメニューを開いてManage appsをクリック
開いたページで
①Custom Integrationsをクリック
②SearchボックスでOutgoing WebHooksを検索
③検索結果からOutgoing WebHooksを選択
Add Configurationをクリック
Add Outgoing WebHooks integrationをクリック
Integration Settingsで
Channel #general
Trigger Word(s) hello
URL(s)に WebアプリケーションのURL を貼り付ける
Save Settingsをクリック
試してみる
#generalのchannelで
bot@ と送る
すると hello が返ってきます
おまけ
JSON.stringify(e)でdoPost(e)の e の中身を見る
コード.gs
var TOKEN = "取得したtoken" var POST_URL = 'https://slack.com/api/chat.postMessage'; function doPost(e) { var json = JSON.stringify(e); var payload = { token: TOKEN, channel: '#general', text: json, icon_emoji: ':sunny:', username: 'hello bot' }; var params = { 'method': 'post', 'payload': payload }; UrlFetchApp.fetch(POST_URL, params); } |
おまけ2
@hereは<!here>bot@ ではなく @here をTrigger Word(s)にする場合
そのまま@hereと指定しても反応しなかったので
調べてみると
<!here>
で反応しました
参考
https://api.slack.com/methods/chat.postMessage
Outgoing WebHooks
https://slack.com/apps/A0F7VRG6Q--web
Basic message formatting
https://api.slack.com/docs/message-formatting