gpt4 book ai didi

python - 在 python 中处理 Slack 按钮操作 POST 请求数据

转载 作者:行者123 更新时间:2023-12-01 09:17:47 24 4
gpt4 key购买 nike

我试图在运行斜杠命令时使确认松弛按钮。例如我运行斜杠命令(/test),它将 POST 请求发送到我的 python 应用程序,该应用程序发回 2 个按钮(确认、取消)。用户按下松弛按钮之一会触发操作并向我的应用程序发送另一个 POST 请求。在此步骤之前一切正常 - 我无法正确处理第二个 POST 请求中的数据。

在 Slack 文档中我发现了这个:

When an action is invoked, a request will be sent to the app's Request URL as configured above; the request body will contain a payload parameter that your app should parse for JSON.

当我这样做的时候

data=json.loads(request.form["payload"])
return jsonify(data)

我明白了

{
"action_ts": "XXXX",
"actions": [
{
"name": "confirm",
"type": "button",
"value": "confirm"
}
],
"attachment_id": "X",
"callback_id": "XXXX",
"channel": {
"id": "XXXX",
"name": "XXXX"
},
"is_app_unfurl": false,
"message_ts": "XXXX",
"response_url": "XXXX",
"team": {
"domain": "XXXX",
"id": "XXXX"
},
"token": "XXXX",
"trigger_id": "XXXX",
"type": "interactive_message",
"user": {
"id": "XXXX",
"name": "XXXX"
}
}

当我打电话之后

data=json.loads(request.form["payload"]) 
action=data["actions"]
return jsonify(action)

我明白了

[
{
"name": "confirm",
"type": "button",
"value": "confirm"
}
]

现在,当我尝试使用 action["name"] 获取 "name" 的值时,我收到错误

类型错误:列表索引必须是整数或切片,而不是 str

我尝试了 json.dumps(action)json.dumps(action["name"]) 它们都不起作用。如何读取该值?我需要检查 name 的值,然后用它来做剩下的事情。

最佳答案

[
{
"name": "confirm",
"type": "button",
"value": "confirm"
}
]

是一个包含一个元素的列表——字典。访问名称,例如 data["actions"][0]["name"]

关于python - 在 python 中处理 Slack 按钮操作 POST 请求数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51082377/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com