【发布时间】:2020-08-12 15:08:06
【问题描述】:
我正在尝试构建一个带有交互式按钮的 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":{"type":"mrkdwn","text":"*Blog:*\nhello\n\n*Comment:*\nravgeet errorCannot read property 'payload' of undefined","verbatim":false}},{"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":{"type":"plain_text","text":"Deny","emoji":true},"style":"danger","value":"denied"}]}]},"response_url":"https:\/\/hooks.slack.com\/actions\/T0160Uxxxxx\/1301968xxxxxx\/Q3gZhbeUCUIxxxxxxxxxxxxx","actions":[{"action_id":"WSo=","block_id":"1maVO","text":{"type":"plain_text","text":"Approve","emoji":true},"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 来确定用户采取了哪些操作?
【问题讨论】:
-
虽然我不确定我是否能正确理解您的目标,例如,
eofLogger.log(e)是您问题中的值,您想在@987654327 中检索payload@,Logger.log(e.parameter.payload)怎么样?但我不确定您期望的输出值。因此,如果这不是您期望的结果,您能否提供您期望的输出值?顺便说一句,我无法理解您对Once I have the payload JSON, I can use the actions to determine what action was taken by the user?的期望值。 -
感谢@Tanaike。我错过了这个东西。 JSON.parse(e.parameter.payload).
标签: javascript google-apps-script slack