python - 通过 Slack API 将文件发布到聊天

标签 python slack-api

我正在尝试使用 Python 的库 slackclient 通过 Slack API 传送视频。

我经常使用 slack.api_call('chat.postMessage'...) 并且我熟悉 'files.upload' 但是当我执行时

slack = SlackClient(TOKEN)
slack.api_call('files.upload', file=open('video.mp4', 'rb')...)

文件已上传到给定 channel ,但未作为消息发布。

我想要实现的是创建一条消息,我可以将其作为私有(private)消息发送或发送到看起来像这样的 channel

enter image description here

如果可能的话,也许可以在上面添加一些文字。

我探索了 Attachment文档中的部分,但找不到与文件相关的任何内容。 如果有办法不以二进制格式提供文件,而是作为链接也可以(只要它以嵌入式方式显示)。

最佳答案

这个示例脚本怎么样?它对文件使用 io.BytesIO(f.read())。为了使用它,files:write:user 必须包含在作用域中。关于文本,您可以使用initial_comment 导入它。在我的环境中,附件 不能用于files.upload。 API文档为https://api.slack.com/methods/files.upload .

脚本:

with open('./sample.mp4', 'rb') as f:
    slack.api_call(
        "files.upload",
        channels='#sample',
        filename='sample.mp4',
        title='sampletitle',
        initial_comment='sampletext',
        file=io.BytesIO(f.read())
    )

结果:

enter image description here

如果我误解了你的问题,我很抱歉。

关于python - 通过 Slack API 将文件发布到聊天,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45531212/

相关文章:

php - 有没有办法以编程方式访问集市存储库?

security - Slack webhook 的安全性如何?

bash - 从 slack 运行 bash 命令

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

slack-api - 发出 api 请求时缺少 slack bot 范围

python - 如何使用 sympy 查找表达式的补集?

python - 在 Python 中,如何禁止类继承?

python - 使用日期时间每小时频率创建数据框

slack - 获取用户所属的 channel 列表

python - python 函数的返回类型不一致——真的吗?