2016-01-26 72 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