图像链接URL使用松弛rtm API显示每个图像的两个副本

问题描述 投票:0回答:1

这是我们正在使用的代码,直到大约一个星期前,它都可以正常工作:

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

直到大约一周前,该类型的图像才会展开并且仅显示该图像的一个副本。现在我们得到了展开的图像的两个副本。即使未进行任何编辑,未折叠图像的第二个副本也略有缩进,并带有一个注释(已编辑)。有什么想法吗?

附加说明:使用chat.postMessage而不是rtm api时,也会发生相同的问题。

Image unfurls, then an exact same copy of the image unfurls below, with a tag that says "edited", even though no editing has taken place

node.js slack slack-api
1个回答
0
投票

问题:

两件事:

  1. 您应使用chat.postMessage()而不是rtm.sendMessage()。您尝试这样做是对的,但是如果要解决此问题,则需要坚持使用它-来自文档:
    • RTM: Formatting Messages:RTM API仅支持发布使用我们的默认消息格式化模式格式化的简单消息。它不支持附件或其他邮件格式设置模式。

    • [node-slack-sdk/rtm-api:简单意味着它不能发送包含附件或块的消息,但是可以包含文本,提及和不卷曲的链接。

  2. 您将以纯文本形式发送消息,而不是以附件,图像块或其他类型的富媒体消息形式发送消息。
    • 这基本上具有与用户只是将图像URL粘贴到松弛通道中相同的效果。在大多数情况下,松弛会“取消卷曲”图像。
    • 我不确定100%展开后会显示为“已编辑”,但我猜测Slack认为“展开”是对原始邮件的编辑,他们试图指出他们] >(如Slack中所示)编辑了消息以取消卷曲。双重映像可能是暂时的故障,也可能是缓存问题,Slack提供的是缓存版本,然后使用新版本进行更新。
  3. 正确的解决方案:

要同时解决这两个问题,您将希望使用chat.postMessage()或传入的Webhook发送消息,并将图像作为an attachmentimage block包括在内(推荐)。文档对此进行了非常详细的介绍,您甚至可以使用它们的block kit builder tool,它使您可以预览消息的显示方式,这些信息将基于通过API发送的JSON有效负载显示(对于旧格式,则为message builder) 。

为了使您获得最大的收益,请使用最低JSON有效负载的here is a preview来发送图像。并且,在代码中:

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

© www.soinside.com 2019 - 2024. All rights reserved.