URL-адреса ссылок на изображения показывают две копии каждого изображения с использованием slack rtm API - PullRequest
1 голос
/ 10 февраля 2020

Вот код, который мы используем, который работал абсолютно нормально примерно до недели a go:

rtm.sendMessage ("https://cdn3.vectorstock.com/i/1000x1000/28/72/set-of-art-calligraphy-letter-i-with-flourish-of-vector-13972872.jpg", currentchannel)

Примерно через неделю go этот тип изображения развернется и покажет только одну копию изображения. Теперь мы получаем две копии развертываемого изображения. Вторая копия развернутого изображения имеет небольшой отступ, с пометкой «отредактировано», хотя редактирование не проводилось. Есть идеи?

Дополнительное примечание: та же проблема возникает при использовании chat.postMessage вместо API RTM.

Изображение разворачивается, затем точно такая же копия изображения разворачивается ниже, с тегом «отредактировано», хотя редактирование не выполнялось

1 Ответ

1 голос
/ 10 февраля 2020

Проблема:

Две основные вещи:

  1. Вы должны использовать chat.postMessage() вместо rtm.sendMessage(). Вы были правы попробовать это, но вам нужно придерживаться этого, если вы хотите это исправить - из документов:
    • RTM: форматирование сообщений : RTM API поддерживает только публикацию простых сообщений, отформатированных с использованием нашего режима форматирования сообщений по умолчанию. Он не поддерживает вложения или другие режимы форматирования сообщений.

    • node-slack-sdk / rtm-api : просто означает, что не может отправлять сообщения, которые содержат вложения или блоки, но могут содержать текст, упоминания и ссылки, которые развертываются.

  2. Вы отправляете свое сообщение как обычный текст, а не как вложение, блок изображения или другой тип мультимедийного сообщения.
    • По сути, это имеет тот же эффект, как если бы пользователь просто вставлял 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);

screenshot

...