Slack Appsでボットにメンションしてイベントを発火させるGAS
Create New AppでFrom scratchからアプリを作成する
Event Subscriptionsを選択して、Enable EventsをONにする
GASを作成する
function doPost(e) {
var postData = JSON.parse(e.postData.getDataAsString());
if(postData.type == 'url_verification') {
return ContentService.createTextOutput(postData.challenge);
}
// Slackからのメッセージを取得
// app_mention
// https://api.slack.com/events/app_mention
var payload = JSON.parse(e.postData.contents);
var user = payload.event.user;
var text = payload.event.text;
var ts = payload.event.ts;
var channel = payload.event.channel;
var event_ts = payload.event.event_ts;
//なんらかの処理(Bot User OAuth Tokenが必要)
}
ウェブアプリとしてデプロイする
ウェブアプリURLをコピーしてSlackのEvent SubscriptionsのRequest URLに入力する
Subscribe to bot eventsでapp_mentionイベントを追加してSave Changesする
OAuth & PermissionsにてBot Token Scopesへ「chat:write」を追加する(返信する場合)
App HomeでアプリのDisplay Nameを設定する
Install Appでワークスペースにアプリをインストールする
ボットをメンションしてイベントを起動する
ユーザーのメッセージ内容を取得する際の注意事項
ボット自身へのメンションもメッセージに含まれるので排除してから処理したほうが良い
message.replace("<@BotMemberID>", '').trim();
Gist : https://gist.github.com/Miyu-dev/74bc5c29bc5eaa407bedf4a453d08956