【问题标题】:Send multiple files to Slack via API通过 API 将多个文件发送到 Slack
【发布时间】:2020-01-27 21:37:25
【问题描述】:

根据 Slack 的文档,每次只能通过 API 发送一个文件。方法是这样的:https://api.slack.com/methods/files.upload

使用 Slack 的桌面和 Web 应用程序,我们可以一次发送多个文件,这很有用,因为文件是分组的,当我们有多个具有相同上下文的图像时有助于可视化。请看下面的例子:

你们知道是否有可能通过 API 一次发送多个文件或以某种方式获得与上图相同的结果?

提前致谢!

【问题讨论】:

    标签: slack slack-api


    【解决方案1】:

    我也遇到过同样的问题。但我尝试用几个 pdf 文件撰写一封邮件。

    我是如何解决这个任务的

    1. Upload 文件没有设置 channel 参数(这会阻止发布)并从响应中收集永久链接。请检查文件对象参考。 https://api.slack.com/types/file。通过“files.upload”方法,您可以上传一个文件。因此,您需要根据要上传的文件多次调用此方法。
    2. 使用 Slack markdown <{permalink1_from_first_step}| ><{permalink2_from_first_step}| > 撰写消息 - Slack 解析链接并自动重新格式化消息

    【讨论】:

    • 有趣。我会试试的。谢谢!
    • 这对我有用。我在 python 中实现了它,并将它放在一个单独的答案中。
    • 如果人们对此有疑问,我发现这在使用 Block 工具包的 markdown 消息块中不起作用 - 它仅适用于使用 @987654324 中的 text 参数发送的 markdown 消息@
    【解决方案2】:

    这是python中其他答案中推荐的过程的实现

    def postMessageWithFiles(message,fileList,channel):
        import slack_sdk
        SLACK_TOKEN = "slackTokenHere"
        client = slack_sdk.WebClient(token=SLACK_TOKEN)
        for file in fileList:
            upload=client.files_upload(file=file,filename=file)
            message=message+"<"+upload['file']['permalink']+"| >"
        outP = client.chat_postMessage(
            channel=channel,
            text=message
        )
    postMessageWithFiles(
        message="Here is my message",
        fileList=["1.jpg", "1-Copy1.jpg"],
        channel="myFavoriteChannel",
    )
    

    【讨论】:

      猜你喜欢
      • 2022-01-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-03-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多