Rainbow Engine

IT技術を分かりやすく簡潔にまとめることによる学習の効率化、また日常の気付きを記録に残すことを目指します。

IT技術 (Technology) Python Slack

Slackでコマンドを作る方法をご紹介(自作スラッシュコマンド)

投稿日:2023年5月4日 更新日:

 

<目次>

(1) Slackでコマンドを作る方法をご紹介(自作スラッシュコマンド)
 (1-0) やりたいこと
 (1-1) STEP1:Slackボットの開発(所要時間:60分)
 (1-2) STEP2:Slack AppにSlash Commandsの設定を追加(所要時間:10分)
 (1-3) STEP3:Pythonプログラムに「/demo」が呼ばれた時の処理を追記(所要時間:5分)
 (1-4) STEP4:疎通テスト(所要時間:5分)

(1) Slackでコマンドを作る方法をご紹介(自作スラッシュコマンド)

(1-0) やりたいこと

・Slackのスラッシュコマンドを自作したい
・コマンドを公開して、他の方も使えるようにする

 

<最終ゴールイメージ>
(図100)

ベースとなる考え方は下記をご参照ください。

(1-1) STEP1:Slackボットの開発(所要時間:60分)

↓こちらの記事内の手順(STEP1~STEP7)を全て実施し、土台となるSlackボットを用意します。
 
(概要)
Slackで発生するイベント(例:チャンネル投稿)を検知し、動作するSlack App(ボット)を作成します。

(1-2) STEP2:Slack AppにSlash Commandsの設定を追加(所要時間:10分)

・①メニューの「Slash Commands」を開きます。
(図121)
・②「Create New Command」を押下
(図122)
・③必要な設定情報を入力して「Save」押下
(表1)
入力項目
Command /demo
Request URL https://slack-howto-create-command.azurewebsites.net/demo
Short Description コマンドの作り方をデモする用

(図123①)

(表2)

入力項目 補足
Command 利用者が打つコマンド
Request URL 利用者が打つコマンドのリクエスト送付先。
Event Subscriptionsに指定したURL(図123③)と合わせる。
これにより、コマンドが「/slack/events」にルーティングされ、リクエストハンドラにHTTPのPOSTリクエストが送られ、適切な先(今回は「@s_app.command(‘/demo’)」にディスパッチしてくれます)

#イベント登録されたリクエストを受け付けるエンドポイント
@app.route(“/slack/events”, methods=[“POST”])
def slack_events():
    return handler_flask.handle(request)

Short Description 利用者がコマンドを打つ際の候補に出てくる説明文
(図123③)
(図123②)Short Descriptionのイメージ
・④「Install App」メニュー⇒「Reinstall to Workspace」を押下
(図124①)
・⑤「許可する」
(図124②)

(1-3) STEP3:Pythonプログラムに「/demo」が呼ばれた時の処理を追記(所要時間:5分)

・①コードを追記します。
(追記コード)
# SlackBoltインスタンスで、コマンド「/demo」の実行を検知
@s_app.command('/demo')
def demo(ack, respond, command):
    ack()

    # 投稿のチャンネルID、ユーザーID、投稿内容を取得
    channel_id = command['channel_id']
    user_id = command['user_id']
    text = command['text']

    # # もしボット以外の人からの投稿だった場合
    if BOT_USER_ID != user_id:               
        # 指定のメッセージを組み立て
        reply_text = ":small_blue_diamond::small_blue_diamond::small_blue_diamond:コマンド出力結果:small_blue_diamond::small_blue_diamond::small_blue_diamond:\r\n:earth_asia:他の方も/demoから使えます:+1:"
        # 指定のメッセージを返却
        respond(reply_text)
    # 正常応答を返却
    return Response(), 200
(図131)


・②Azure App Serviceへ再度リリースします。
(図132)

(1-4) STEP4:疎通テスト(所要時間:5分)

最後に、Slack側で実際にコマンドを実行してみて、期待したメッセージが投稿されるか?を確認します。
(動画141)

Adsense審査用広告コード


Adsense審査用広告コード


-IT技術 (Technology), Python, Slack
-

執筆者:


comment

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

関連記事

Slackのアプリを作成する手順をご紹介

  <目次> (1) Slackのアプリを作成する手順をご紹介  (1-1) Slackアプリの作成手順   ●STEP1:Slackアプリの新規作成   ●STEP2:Slackアプリの権 …

CRUD図とは?の例や書き方のご紹介

  <目次> (1) CRUD図とは?の例や書き方のご紹介  (1-1) CRUD図とは?  (1-2) CRUD図の例&書き方  (1-3) なぜCRUD図を作るか? (1) CRUD図と …

Slackで自動返信の投稿をするボットをPythonで作る手順(ngrokでローカルPCをサーバーに見立てて)

  <目次> (1) Slackで自動返信の投稿をするボットをPythonで作る手順(ngrokでローカルPCをサーバーに見立てて)  (1-1) STEP1:Slackアプリの新規作成&権 …

Windows10でアイコンの間隔が広くなる不具合の対処

  <目次> (1) Windows10でアイコンの間隔が広くなる不具合の対処  (1-1) 発生状況・エラーメッセージ等  (1-2) 原因・対処 (1) Windows10でアイコンの間 …

エピック/ユーザーストーリー/フィーチャーの違いや特徴について

  <目次> (1) エピック/ユーザーストーリー/フィーチャーの違いや特徴について  (1-1) エピック(Epic)とは?  (1-2) フィーチャー(Feature)とは?  (1-3 …

  • English (United States)
  • 日本語
Top