Python 使用slack API发布图像

Python 使用slack API发布图像,python,slack-api,slack,Python,Slack Api,Slack,我正试图发布一个带有slack API的图像。我目前有两个API(使用python)处于打开状态,即rtm和slackbot sc = SlackClient(API_KEY) sc.api_call('chat.postMessages', channel=, text=) #post as bot sc.rtm_connect(): sc.rtm_send_message(channel=..., message=...) #post as desired user 这些示例可以很好地将

我正试图发布一个带有slack API的图像。我目前有两个API(使用python)处于打开状态,即rtm和slackbot

sc = SlackClient(API_KEY)
sc.api_call('chat.postMessages', channel=, text=) #post as bot

sc.rtm_connect():
sc.rtm_send_message(channel=..., message=...) #post as desired user
这些示例可以很好地将文本发布到频道,但我需要将图像发布到频道

我想使用rtm_*方法发布一个图像,但我不知道如何发布。我看到的关于图像的唯一参考是,但我没有看到一种使用RTMAPI的方法

感谢您的帮助。蒂亚

更新/编辑

因此,我尝试使用推荐的方法
Jon
,即:

sc.api_call("chat.postMessage", channel='D0K7P9MCJ', text='postMessage test',
            attachments='[{"image_url":"http://i.ytimg.com/vi/tntOCGkgt98/maxresdefault.jpg"}]')
但这似乎不起作用(没有发布图像),也没有抛出错误

解决方案


我通过在附件部分添加一个标题来实现这一点。希望它抛出一个错误,=/

您将不得不使用postMessage选项——您不能使用RTM(从):

RTMAPI只支持使用我们的 默认消息格式模式。它不支持附件或文件 其他消息格式模式。将更复杂的消息作为 用户客户端可以使用as_user调用chat.postMessage Web API方法 设置为true


如问题更新中所述,为了使其生效,必须在附件中包含标题

image_url = "http://i.ytimg.com/vi/tntOCGkgt98/maxresdefault.jpg"
attachments = [{"title": "Cat", "image_url": image_url}]
sc.api_call("chat.postMessage", channel='D0K7P9MCJ', text='postMessage test',
            attachments=attachments)

我更新了我的OP,以显示使用
postMessage
的示例,这似乎对我不起作用。您是否包括
标记
参数?这是必需的,因为我使用的是客户端库,它似乎不需要我提供值。虽然我在客户端构造函数上提供了API密钥,但它在提供令牌的情况下运行良好。-另外,请注意,我在我的作品中发布了解决方案。缺少图片标题。谢谢!谢谢你的评论。帮我继续挖掘。你能用附件发布一个实际有效的示例通话吗?我也在尝试做同样的事情,但包括一个标题并不是helping@Bicubic已经有一段时间了,但我添加了一个解决方案,它应该可以工作。为
标题
文本
使用空白字段也可以工作