Skip to content

Latest commit

 

History

History
46 lines (36 loc) · 2.05 KB

File metadata and controls

46 lines (36 loc) · 2.05 KB
title アクションへの応答
lang ja-jp
slug action-respond
order 6

アクションへの応答には、主に 2 つの方法があります。1 つ目の最も一般的なやり方は say() を使用する方法です。そのリクエストが発生した会話(チャンネルや DM)にメッセージを返します。

2 つ目は、respond() を使用する方法です。これは、アクションに関連づけられた response_url を使ったメッセージ送信を行うためのユーティリティです。

指定可能な引数の一覧はモジュールドキュメントを参考にしてください。 ```python # 'approve_button' という action_id のインタラクティブコンポーネントがトリガーされると、このリスナーが呼ばれる @app.action("approve_button") def approve_request(ack, say): # アクションのリクエストを確認 ack() say("Request approved 👍") ```

respond() の利用

respond()response_url を使って送信するときに便利なメソッドで、これらと同じような動作をします。投稿するメッセージのペイロードには JSON オブジェクトを渡すことができ、メッセージはやり取りの発生元に反映されます。オプションのプロパティとして response_type(値は in_channel または ephemeral)、replace_originaldelete_original などを指定できます。

# 'user_select' という action_id を持つアクションのトリガーをリッスン
@app.action("user_select")
def select_user(ack, action, respond):
    ack()
    respond(f"You selected <@{action['selected_user']}>")