如何访问 Slack 的 Interactive Message 请求负载参数?
How to access Slack's Interactive Message request payload parameter?
当用户点击这些消息之一中的按钮时,我想访问 Slack 发送给交互式消息请求 Url 的负载参数。
我该怎么做?
在您的服务器端,检查您的请求 url 路由是否允许接收 POST。
正如他们的文档中所说 (https://api.slack.com/docs/message-buttons) :
Your Action URL will receive a HTTP POST request, including a payload
body parameter, itself containing an application/x-www-form-urlencoded
JSON string.
您首先必须解码请求的 x-www-form-urlencoded 格式,然后 json解码它。
在 python 中,我得到了这行代码:
payload = json.loads(urlparse.parse_qs(request.get_data())['payload'][0])
希望有一天它能对其他人有所帮助!
如果您使用 AWS lambda 作为后端,请使用以下内容。 (python3)
import json
from urllib.parse import parse_qs
payload = json.loads(parse_qs(event['body'])['payload'][0])
我设法通过这种方式获取信息:
data = request.form.to_dict()
payload = json.loads(data['payload'])
print(payload["actions"][0]["name"])
希望对以后的人有所帮助。
第一行将 ImmutableDict 转换为可变字典。
第二行是必要的,因为负载仍然是JSON。
第三行只是访问负载操作详细信息,如 Block Link Builder 中所示,通常大多数人只会处理一个相关操作。
当用户点击这些消息之一中的按钮时,我想访问 Slack 发送给交互式消息请求 Url 的负载参数。
我该怎么做?
在您的服务器端,检查您的请求 url 路由是否允许接收 POST。 正如他们的文档中所说 (https://api.slack.com/docs/message-buttons) :
Your Action URL will receive a HTTP POST request, including a payload body parameter, itself containing an application/x-www-form-urlencoded JSON string.
您首先必须解码请求的 x-www-form-urlencoded 格式,然后 json解码它。
在 python 中,我得到了这行代码:
payload = json.loads(urlparse.parse_qs(request.get_data())['payload'][0])
希望有一天它能对其他人有所帮助!
如果您使用 AWS lambda 作为后端,请使用以下内容。 (python3)
import json
from urllib.parse import parse_qs
payload = json.loads(parse_qs(event['body'])['payload'][0])
我设法通过这种方式获取信息:
data = request.form.to_dict()
payload = json.loads(data['payload'])
print(payload["actions"][0]["name"])
希望对以后的人有所帮助。
第一行将 ImmutableDict 转换为可变字典。
第二行是必要的,因为负载仍然是JSON。
第三行只是访问负载操作详细信息,如 Block Link Builder 中所示,通常大多数人只会处理一个相关操作。