Slack APP 開発は初めてで、Slack ボルト python を使用してアプリを開発しています。私のアプリでは、ボタンクリックを使用してスラックインタラクションを構成しました。ボタンをクリックすると、対応するリスナーが呼び出されます (ボタンに記載されている action_id で識別されます)。リスナーでは、イベントのすべての状態値を含む block_actions ペイロードを取得していますが、それに加えて、リスナー関数にいくつかの引数が必要です。リスナーに追加の引数を送信できる方法はありますか
@app.action("change_time_period")
def handle_change_time_period(ack, context, body, client, logger, message, say):
# want the arguments here such as passing email_id from post_data
def post_data(user_id, email_id):
client = WebClient(token=os.environ.get("SLACK_BOT_TOKEN"))
result = client.chat_postMessage(
channel=user_id,
blocks=[
{
"type": "actions",
"elements": [
{
"type": "button",
"text": {
"type": "plain_text",
"emoji": True,
"text": "Change time period"
},
"style": "primary",
"value": "time_period",
"action_id": "change_time_period"
}
]
}
]
)
上記のコードでは、ブロック キットを含むメッセージを投稿する post_data を呼び出します。ユーザーがボタンをクリックすると、handle_change_time_period が呼び出されます。