Проблема:
Две основные вещи:
- Вы должны использовать
chat.postMessage()
вместо rtm.sendMessage()
. Вы были правы попробовать это, но вам нужно придерживаться этого, если вы хотите это исправить - из документов: RTM: форматирование сообщений : RTM API поддерживает только публикацию простых сообщений, отформатированных с использованием нашего режима форматирования сообщений по умолчанию. Он не поддерживает вложения или другие режимы форматирования сообщений.
node-slack-sdk / rtm-api : просто означает, что не может отправлять сообщения, которые содержат вложения или блоки, но могут содержать текст, упоминания и ссылки, которые развертываются.
- Вы отправляете свое сообщение как обычный текст, а не как вложение, блок изображения или другой тип мультимедийного сообщения.
- По сути, это имеет тот же эффект, как если бы пользователь просто вставлял URL-адрес изображения в свободный канал. В большинстве случаев Slack "развернет" изображение.
- Я не уверен на 100%, что оно будет отображаться как "отредактированное" после развертывания, но я предполагаю, что Slack считает "развертывание" редактированием на ваше исходное сообщение, и они пытаются указать, что они (как в Slack ) отредактировали сообщение, чтобы развернуть его. Двойное изображение может быть временным сбоем или проблемой кэширования, когда Slack обслуживает кэшированную версию, а затем обновляется с помощью fre sh.
Правильное решение:
Чтобы устранить обе эти проблемы, вы захотите отправить свое сообщение с помощью chat.postMessage()
или входящим веб-крючком и включить изображение в виде вложения или в блок изображения (рекомендуется). Документы описывают это очень подробно, и вы даже можете поиграть с их инструментом для создания набора блоков , который позволяет вам предварительно просмотреть, как будут отображаться сообщения, исходя из полезной нагрузки JSON, которую вы будете отправлять через API ( или построитель сообщений для устаревшего формата).
Чтобы получить большую часть пути туда, вот предварительный просмотр минимальной JSON полезной нагрузки для отправки вашего образ. И в коде:
chat.postMessage({
"blocks": [
{
"type": "image",
"image_url": "https://cdn3.vectorstock.com/i/1000x1000/28/72/set-of-art-calligraphy-letter-i-with-flourish-of-vector-13972872.jpg",
"alt_text": "Calligraphy, Letter I"
}
]
}, currentchannel);