通过API将多个文件发送到Slack

时间:2020-01-27 21:37:25

标签: slack slack-api

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

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

enter image description here

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

谢谢!

2 个答案:

答案 0 :(得分: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解析链接并自动重新格式化消息

答案 1 :(得分:0)

这是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",
)