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

投稿者 miyu_sakatsuki

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です