我正在尝试在运行斜杠命令时进行确认松弛按钮 . 例如我运行slash-command( /test
)它将POST请求发送到我的python应用程序,该应用程序发回2个按钮(确认,取消) . 用户按下其中一个按钮,松弛触发一个动作,并向我的应用程序发送另一个POST请求 . 在此步骤之前一切正常 - 我无法正确处理来自第二个POST请求的数据 .
在Slack文档中我发现了这个:
调用操作时,将按照上面的配置将请求发送到应用程序的请求URL;请求正文将包含应用程序应为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"
的值时,我收到错误
TypeError:list indices必须是整数或切片,而不是str
我试过 json.dumps(action)
和 json.dumps(action["name"])
都没有奏效 . 如何阅读这些 Value 观?我需要检查 name
的值,然后用它来完成剩下的工作 .
1 回答
是一个包含一个元素的列表 - 字典 . 访问名称
data["actions"][0]["name"]