json - 消息通知产生 "This content can' t 被显示”

标签 json slack-api

我正在通过网络 Hook 向 Slack 发送消息。使用单个“文本”JSON 元素的消息通知可通过适用于 OS X 和 iOS 的 Slack 应用程序生成正确的通知文本。 channel 中的消息文本也是正确的。但是,当使用新的“阻止”方法时,通知文本变为“无法显示此内容”。该消息确实正确显示在 channel 中。只是通知不起作用。

根据https://api.slack.com/messaging/composing/layouts第一个 block 中的文本用于通知:

When you're using blocks in your message payload, the text field becomes a fallback message displayed in notifications.

不使用 block 样式,这可以工作:

curl -s -k -X POST https://hooks.slack.com/services/${webhook} -H 'Content-type: application/json' --data @- << EOF
{
  "text": "${message}"
}
EOF

如果您使用https://api.slack.com/tools/block-kit-builder处的 block 构建器应用程序生成一个简单的 block 样式等效项通过清除任何现有代码,然后添加一个部分块,您将得到如下所示的内容:

[
    {
        "type": "section",
        "text": {
            "type": "plain_text",
            "text": "This is a plain text section block.",
            "emoji": true
        }
    }
]

现在,在页面底部输入您的 channel 并点击“发送到 Slack”。结果是文本正确到达 channel ,但弹出的通知包含文本“此内容无法显示”。

起初我认为我自己的 block 样式代码不正确,但是,由 block 套件构建器应用程序生成的代码也不起作用,这让我相信 Slack 本身存在问题/错误。

或者我忽略了什么?

谢谢

最佳答案

消息结构中有多个“text”属性。我相信该文档指的是所有 block 定义之外的顶级文档。

示例:

{
  "channel": "C1H9RESGL",
  "text": "Text here for notifications",
  "blocks": [
    {
      "type": "section",
      "text": {
        "type": "mrkdwn",
        "text": "Danny Torrence left the following review for your property:"
      }
    }
  ]
}

关于json - 消息通知产生 "This content can' t 被显示”,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56317962/

相关文章:

javascript - AmCharts 不显示带有 Json 数据源的图表

python - 使用 pandas 从嵌套的 json 转换为 csv

slack-api - 附件字段的最大长度

python - 无法从 slack 打印用户名 "@John"以及如何在不手动输入 cntrl+c 的情况下关闭 Linux 中的 python 文件

python - 有没有办法将 python 中的 2 个装饰器与 or 条件结合起来?

bots - 如何在不将其添加到目录的情况下在多个团队中安装机器人?

vb.net - 将 JSON 字符串转换为 JSON 对象

c# - 如何从json创建一个c#对象

arrays - Spark 在 Scala 中用数组分解嵌套 JSON

slack-api - 如何跳转到历史中的特定日期或桌面应用程序中 Slack channel 中最旧的消息?