
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












