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)
但这似乎不起作用(没有发布图像)并且不会抛出任何错误.
解
我通过在附件部分中包含标题来实现此目的.希望它抛出一个错误,= /
正如问题中的更新中所提到的,为了使其工作,必须包含带附件的标题.
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。