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

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

関連記事

ストーリーポイント(SP)とは?定義やポイントについて

  <目次> (1) ストーリーポイント(SP)とは?定義やポイントについて  (1-1) ストーリーポイント(SP)とは?  (1-2) ストーリーポイント(SP)の注意点  (1-3) …

Pythonで画面作成をtkinterで行う方法(入門編)

<目次> (1) Pythonで画面作成をtkinterで行う方法(入門編)  (1-1) tkinterとは?  (1-2) STEP1:tkinterモジュールのインポート  (1-3) STEP …

no image

P2P(Procure to Payment)とは?概要や流れをご紹介

  <目次> (1) P2P(Procure to Payment)とは?概要や流れをご紹介  (1-1) 概要  (1-2) 流れ   ●①必要性チェック(Indentify Needs) …

排他制御における楽観ロックと悲観ロックについて

<目次> (1) 排他制御における楽観ロックと悲観ロックについて  (1-1) 楽観的排他制御   ●概要・仕組み   ●イメージ図   ●楽観的排他制御で起こり得る問題  (1-2) 悲観的排他制御 …

Celonisの研修の概要・受講方法・学習支援コンテンツについて

  <目次> (1) Celonisの研修の概要・受講方法・学習支援コンテンツについて  (1-1) Celonisの研修概要  (1-2) Celonisの研修の分類について  (1-3) …

  • English (United States)
  • 日本語
Top