问题描述
我正在尝试用交互式按钮构建一个Slack机器人。我已经设置了一个Google Apps脚本来处理对Slack消息执行的操作。我想要由Slack发送的请求的有效负载。我试图通过做得到请求对象
function doPost(e) {
return processComment(e);
}
function processComment(e) {
Logger.log(e);
}
{postData=FileUpload,queryString=method=slack,parameter={method=slack,payload={"type":"block_actions","user":{"id":"U01835Mxxxx","username":"ravsamteam","name":"ravsamteam","team_id":"T0160UQZZZZ"},"api_app_id":"A018MPZ2xxx","token":"NTNRCTPDz8mxxxzxxxxxxxxx","container":{"channel_id":"C0190D8L2AU","is_ephemeral":false,"message_ts":"1597154895.001500","type":"message"},"trigger_id":"1281039280903.1204976558018.aa1055f6900d7884d9cd4ac34ffzzzzz","team":{"id":"T0160UQGE0J","domain":"ravsamhq"},"channel":{"id":"C0190D8L2AU","name":"blogs"},"message":{"type":"message","subtype":"bot_message","text":"This content can't be displayed.","ts":"1597154895.001500","bot_id":"B019BNL08BS","blocks":[{"type":"section","block_id":"mNavk","text":{"type":"mrkdwn","text":" New comment on RavSam's blog by hello","verbatim":false}},{"type":"section","block_id":"v3Ip","text":"*Blog:*\nhello\n\n*Comment:*\nravgeet errorCannot read property 'payload' of undefined",{"type":"actions","block_id":"1maVO","elements":[{"type":"button","action_id":"WSo=","text":{"type":"plain_text","text":"Approve","emoji":true},"style":"primary","value":"approved"},{"type":"button","action_id":"Vek\/","text":"Deny","style":"danger","value":"denied"}]}]},"response_url":"https:\/\/hooks.slack.com\/actions\/T0160Uxxxxx\/1301968xxxxxx\/Q3gZhbeUCUIxxxxxxxxxxxxx","actions":[{"action_id":"WSo=","type":"button","value":"approved","action_ts":"1597213837.152704"}]}},contentLength=2391.0,parameters={payload=[Ljava.lang.Object;@53f2e9fa,method=[Ljava.lang.Object;@5793298b},contextPath=}
如何获取有效载荷?有了有效负载JSON之后,就可以使用actions
来确定用户采取了什么操作?
解决方法
是的。有效负载包含识别动作所需的所有信息。并且还包含一个response_url
来回复。
松弛的有效负载应如下所示。
{
"actions": [
{
"name": "channels_list","selected_options": [
{
"value": "C012AB3CD"
}
]
}
],"callback_id": "select_simple_1234","team": {
"id": "T012AB0A1","domain": "pocket-calculator"
},"channel": {
"id": "C012AB3CD","name": "general"
},"user": {
"id": "U012A1BCD","name": "musik"
},"action_ts": "1481579588.685999","message_ts": "1481579582.000003","attachment_id": "1","token": "iUeRJkkRC9RMMvSRTd8gdq2m","response_url": "https://hooks.slack.com/actions/T012AB0A1/123456789/JpmK0yzoZDeRiqfeduTBYXWQ","trigger_id": "13345224609.738474920.8088930838d88f008e0"
}
您可以了解更多here。