2016-01-26 19 views
8

我正在尝试发布带有松散API的图像。我有两个打开的API(使用python),这是rtm & slackbot。发布带有松散API的图像

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/EDIT

所以我尝试使用方法Jon建议,这是这样的:

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

但这似乎并没有工作(没有图像贴)和无错误被抛出。

SOLUTION

我通过在附件部分标题得到了这个工作。希望它扔了一个错误,=/

+0

请问您可以发布一个实际有效的附件示例调用吗?我试图做同样的事情,包括一个标题没有帮助 – Bicubic

+0

@Bicubic它已经有一段时间了,但我增加了一个应该工作的解决方案。 – Shatnerz

回答

1

你将不得不使用postMessage的选项 - 它使用RTM(从https://api.slack.com/rtm),你可以这样做:

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

+0

我更新了我的OP,以显示使用'postMessage'的例子,它似乎不适合我。 –

+0

你是否包含'token'参数?这是必需的https://api.slack.com/methods/chat.postMessage –

+0

我正在使用客户端库,它似乎并不要求我提供的价值。它工作正常w/out提供令牌,但我提供客户端构造函数的API密钥。 - 另外,请注意,我发布了似乎是我的OP中的解决方案。图像标题丢失。 –

4

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

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

对'title'和'text'使用空白字段也可以 – meain