json - 消息通知产生“此内容无法显示”
问题描述
我正在通过网络挂钩将消息发送到 Slack。使用单个“文本”JSON 元素的消息通知使用适用于 OS X 和 iOS 的 Slack 应用程序生成正确的通知文本。消息文本在频道中也是正确的。但是,当使用新的“阻止”方法时,通知文本变为“无法显示此内容”。该消息确实正确显示在频道中。只是通知不起作用。
根据https://api.slack.com/messaging/composing/layouts,第一个块中的文本用于通知:
当您在消息负载中使用块时,文本字段将成为通知中显示的后备消息。
不使用块样式,这有效:
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上的块构建器应用程序通过清除任何现有代码然后添加一个 Section 块来生成一个简单的块样式等效项,您将拥有如下内容:
[
{
"type": "section",
"text": {
"type": "plain_text",
"text": "This is a plain text section block.",
"emoji": true
}
}
]
现在在页面底部,输入您的频道并单击“发送到 Slack”。结果是文本正确到达频道,但弹出的通知包含文本“无法显示此内容”。
起初我认为我自己的块样式代码不正确,但是,由块工具包构建器应用程序生成的代码也不起作用,这让我相信 Slack 本身存在问题/错误。
还是我忽略了什么?
谢谢
解决方案
消息结构中有多个"text"
属性。我相信该文档指的是所有块定义之外的顶级文档。
例子:
{
"channel": "C1H9RESGL",
"text": "Text here for notifications",
"blocks": [
{
"type": "section",
"text": {
"type": "mrkdwn",
"text": "Danny Torrence left the following review for your property:"
}
}
]
}
推荐阅读
- wordpress - WooComerce 电子邮件模板文本更改
- system-verilog - 活性和反应性 UVM 剂
- docker - JFrog Artifactory OSS 是否提供私有 docker 注册表?
- java - Spring in Action 第 6 章,项目未启动
- kubernetes - 如何手动强制 Kubernetes 扩展节点?
- python - 为什么python3中set中的元素不按顺序排列?
- r - R Shiny 用一个复选框选择多个变量
- html - 如何将 image/tiff;base64 字符串转换为 image/png;base64 字符串?
- python - Python PostgreSQL 删除重复行
- javascript - 使用 JavaScript 更新 Css 类