我试图发布带有松弛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"}]')
但是这似乎不起作用(没有发布图像)并且没有抛出任何错误。
解
我通过在附件部分中添加标题来实现此目的。希望它抛出一个错误,= /
答案 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。