使用松弛的API发布图像

时间:2016-01-26 19:08:13

标签: python slack-api 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_ *方法发布图片,但我无法弄清楚如何。我在图片中看到的唯一参考是https://api.slack.com/docs/attachments,但我没有看到使用rtm API的方法。

感谢任何帮助。 TIA。

UPDATE /修改

所以我尝试使用推荐的Jon方法,即:

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

但是这似乎不起作用(没有发布图像)并且没有抛出任何错误。

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

2 个答案:

答案 0 :(得分:5)

正如问题中的更新所述,为了使其工作,必须包含带附件的标题。

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)

答案 1 :(得分:2)

您必须使用postMessage选项 - 您无法使用RTM(来自https://api.slack.com/rtm):

  

RTM API仅支持发布使用我们格式化的简单消息   默认邮件格式化模式。它不支持附件或   其他消息格式化模式。发布更复杂的消息作为   用户客户端可以使用as_user调用chat.postMessage Web API方法   设置为true。

相关问题