Уведомления о сообщениях выдают «Это содержимое не может быть отображено»

Я отправляю сообщения в Slack через веб-хук. Уведомления о сообщениях с использованием одного «текстового» элемента JSON создают правильный текст уведомления с приложением Slack для OS X и iOS. Текст сообщения в канале тоже правильный. Однако при использовании нового метода «блокировки» текст уведомления становится «Это содержимое не может быть отображено». Сообщение правильно отображается в канале. Вот только уведомление не работает.

Согласно https://api.slack.com/messaging/composing/layouts текст в первом блоке используется для уведомления:

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

Без использования стиля блоков это работает:

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-строитель, очистив весь существующий код, а затем добавив блок Section, у вас будет что-то вроде этого:

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

Теперь внизу страницы введите свой канал и нажмите «Отправить в Slack». В результате текст поступает в канал правильно, однако всплывающее уведомление содержит текст «Этот контент не может быть отображен».

Сначала я подумал, что мой собственный код стиля блока был неправильным, однако этот код, сгенерированный приложением для создания набора блоков, также не работает, что наводит меня на мысль, что существует проблема/ошибка с самим Slack.

Или есть что-то, что я упустил из виду?

Спасибо

Привет, я просто впервые читаю документы для slack, является ли обычный текст допустимым типом?

James m 27.05.2019 01:14
Как сделать HTTP-запрос в Javascript?
Как сделать HTTP-запрос в Javascript?
В JavaScript вы можете сделать HTTP-запрос, используя объект XMLHttpRequest или более новый API fetch. Вот пример для обоих методов:
33
2
10 135
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

В структуре сообщения есть несколько свойств "text". Я считаю, что документ относится к верхнему уровню за пределами всех определений блоков.

Пример:

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

Это сделало это! Большое вам спасибо за вашу помощь!

CSR 27.05.2019 17:18

К сожалению, если вы используете свойство text, вы не сможете просмотреть свое сообщение в Slack Block Kit Builder.

krzk 08.01.2020 15:44

Конечно, нет. Конструктор Slack Block Kit предназначен только для блоков сообщения (часть под "blocks:")

Erik Kalkoken 08.01.2020 16:02

Другие вопросы по теме