如何向 SLACK 发送 JSON 消息?

如何向 SLACK 发送 JSON 消息?

我有一个以下 JSON 文件:

{
  "blocks": [
    {
      "type": "section",
      "text": {
        "type": "mrkdwn",
        "text": "Success: ondrejdolezal93's workflow (<https://circleci.com/api/v1.1/project/github/integromat/docker-db-updater/628|build>) in <https://app.circleci.com/pipelines/github/integromat/docker-db-updater%7Cintegromat/docker-db-updater> (<https://app.circleci.com/pipelines/github/integromat/docker-db-updater?branch=main%7Cmain>)\n- Fix update version (<https://github.com/integromat/docker-db-updater/commit/9a5b8d61a5c79dabbb2a47bb68b33748034986aa%7C9a5b8d6> by ondrejdolezal93)"
      }
    }
  ]
}

我正在尝试使用 Slack webhook 并使用curl.

我的命令如下:

curl -X POST -H 'Content-type: application/json' --data @message.json $SLACK_WEBHOOK_URL

来自curl的回复是:no_text

请问我做错了什么? JSON 根据 Slack API 文档进行格式化。

答案1

在 Slack API 文档中,它明确指出,如果您发送 JSON 编码的正文,您将必须在 HTTP 标头中传输您的 API 令牌Authorization。你没有这样做。

curl文档中提供了一个示例查询(通过缩进、用对文件的引用替换内联 JSON 文档并引用 URL 进行修改):

curl -X POST \
    -H 'Authorization: Bearer xoxb-1234-56789abcdefghijklmnop' \
    -H 'Content-type: application/json' \
    --data @message.json \
    'https://slack.com/api/chat.postMessage'

请参阅此处的 API 文档:https://api.slack.com/web

相关内容