yoshiislandblog.net
元営業の駆け出しアラサーSEが、休日にMACと戯れた際の殴り書きメモ。日々勉強。日々進歩。
bolt-py-logo

Bolt for Pythonを使ってSlackでメンションをつけられたら応答する

2022-04-23

Bolt for Pythonを使ってSlackでメンションをつけられたら応答するように実装する話

Bolt for Pythonとは?という話は、以下の記事を参照ください
いつの間にslackbotモジュールやHubotは使えなくなったらしい(絶対できるBolt for Python入門)


Botに権限付与

まずは、メンションをつけられたら応答できるようにBot側に権限を付与する

サイドバーの「Event Subscriptions」をクリック
20220423_bolt_for_python_slack_1

下にスクロールして「Subscribe to bot events」>「Add Bot User Event」から
「app_mentions:read」というイベントを追加する
20220423_bolt_for_python_slack_2

「app_mention」というイベントが追加されたのを確認して「Save Changes」
20220423_bolt_for_python_slack_3

「reinstall your app」をクリック
20220423_bolt_for_python_slack_4

「Allow」をクリック
20220423_bolt_for_python_slack_5

コード

権限が追加されたら、コードを実装

「SLACK_BOT_TOKEN」と「SLACK_APP_TOKEN」は以下記事を参考に発行してください
いつの間にslackbotモジュールやHubotは使えなくなったらしい(絶対できるBolt for Python入門)

 
%  cat app.py
from slack_bolt import App
from slack_bolt.adapter.socket_mode import SocketModeHandler

SLACK_BOT_TOKEN = 'xoxb-xxxxxxxx'
SLACK_APP_TOKEN = 'xapp-xxxxxxxx'

app = App(token=SLACK_BOT_TOKEN)

@app.event("app_mention")
def message_mention(say):
    say("Whats up?")

if __name__ == "__main__":
    SocketModeHandler(app, SLACK_APP_TOKEN).start()

参考:https://github.com/slackapi/bolt-python/blob/main/examples/events_app.py#L17

実行

実行して、Botにメンションをつけると反応してくれるようになる
20220423_bolt_for_python_slack_6

以上。