使用松弛的API发布图像

mr-*_*-sk 12 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
Run Code Online (Sandbox Code Playgroud)

这些示例可以很好地将文本发布到频道,但我需要将图像发布到频道.

我想使用rtm_*方法发布图像,但我无法弄清楚如何.我在图片中看到的唯一参考是https://api.slack.com/docs/attachments,但我没有看到使用rtm API的方法.

任何帮助表示赞赏.TIA.

更新/编辑:

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

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

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

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

Sha*_*erz 6

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

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)
Run Code Online (Sandbox Code Playgroud)


小智 3

您必须使用 postMessage 选项——您不能使用 RTM 来执行此操作(来自https://api.slack.com/rtm):

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