繁体   English   中英

如何获取 Slack 操作消息发送的 JSON 有效负载?

[英]How to get JSON payload sent by the Slack action message?

我正在尝试构建一个带有交互式按钮的 Slack 机器人。 我已经设置了一个 Google Apps 脚本来处理对 Slack 消息执行的操作。 我想要 Slack 发送的请求的有效负载。 我试图通过做得到请求 object

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来确定用户采取了哪些操作?

是的。 有效负载包含识别操作所需的所有信息。 它还包含一个response_url来响应。

Slack 有效负载应如下所示。

{
    "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"
}

你可以在这里了解更多。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM