我正在尝试使用Python的库通过Slack API交付视频slackclient
。
我经常使用slack.api_call('chat.postMessage'...)
并且熟悉,'files.upload'
但是执行时
slack = SlackClient(TOKEN)
slack.api_call('files.upload', file=open('video.mp4', 'rb')...)
Run Code Online (Sandbox Code Playgroud)
文件已上传到给定的频道,但未作为消息发布。
我要实现的目标是创建一条消息,该消息可以作为私人消息发送,也可以发送到看起来像这样的频道
并可能的话在其上方添加一些文字。
我已经浏览了文档中的“ 附件”部分,但是找不到与文件相关的任何内容。如果有一种方法可以不以二进制格式提供文件,而是以链接形式提供文件(只要以嵌入式方式显示)就可以了。
小智 6
我遇到了这个问题,因为我遇到了同样的问题 - 我的文件会上传,我会得到回复,但文件不会发布到我发送的频道。事实证明,我阅读 Slack API 文档是一项糟糕的工作。我已经使用了chat.postMessage
很多次并包含了一个“频道”参数。这是该 API:https : //api.slack.com/methods/chat.postMessage
files.upload
它需要在“频道”参数中使用逗号分隔的频道列表的方法。请参阅https://api.slack.com/methods/files.upload 一旦我从“频道”更改为“频道”并确保将其作为列表传递,我就成功地将图像发布到我想要的频道。
然后,对于原始问题,在您使用的代码的链接中(https://ibb.co/hwH5hF)尝试更改channel='bla'
为channels=['bla']
这个示例脚本怎么样?它io.BytesIO(f.read())
用于文件。为了使用它,files:write:user
必须包含在范围内。关于文本,您可以使用导入initial_comment
。在我的环境中,attachments
不能用于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())
)
Run Code Online (Sandbox Code Playgroud)
如果我误解了您的问题,对不起。