在邮件附件中使用上传到Slack的图像

时间:2018-12-11 15:57:12

标签: node.js slack

我想使用slack.files.upload(节点api)上传文件,而不直接将其发布到频道。

相反,我想引用邮件中的文件作为附件(image_url)。

但是,在没有频道的情况下上传时,生成的url_private无效。

当发布到频道url_private时有效,但是图像会自动显示在聊天中(我不希望这样)。

 await slack.files.upload({
        filename,
        file: buffer,
        channels: "sem-test"
    })

工作。

await slack.files.upload({
            filename,
            file: buffer
          })

不给出错误,但是结果url_private指向无效的文件。

2 个答案:

答案 0 :(得分:1)

您可以使用上传到Slack的图像作为附件,而无需在频道中共享它们。

如果您将这些文件设为公开,则可以使用此功能,因为邮件附件中的图像链接只能使用指向公开URL的链接:

  1. 使用files.upload上传文件并获取文件ID
  2. 使用files.sharedPublicURL公开文件URL并检索permalink_public
  3. 使用permalink_public的{​​{1}}属性将图像附加到附件

此外,image_url是有效的URL,但是您需要提供授权标头才能使用它:

url_private

有关Slack文件认证的更多详细信息,请参见here

答案 1 :(得分:0)

我了解到,没有频道上传的所有文件都是私有文件。

但是,作为一种解决方法,您可以创建另一个通道,其唯一目的是将文件上传到该通道,并从另一个通道引用该文件。