web-dev-qa-db-ja.com

SlackAPIを使用して画像を投稿する

SlackAPIを使用して画像を投稿しようとしています。現在、(Pythonを使用して)2つのAPIを開いています。それは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

これらの例は、textをチャネルに投稿するのに問題なく機能しますが、画像をチャネルに投稿する必要があります。

Rtm_ *メソッドを使用して画像を投稿したいのですが、方法がわかりません。画像について私が見る唯一の参照は https://api.slack.com/docs/attachments ですが、rtmAPIを使用してそれを行う方法がわかりません。

どんな助けでも大歓迎です。 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"}]')

しかし、それは機能していないようで(画像は投稿されていません)、エラーはスローされません。

[〜#〜]ソリューション[〜#〜]

添付ファイルセクションにタイトルを含めることで、これを機能させることができました。エラーが発生したい= /

12
mr-sk

質問の更新で述べたように、これが機能するためには、添付ファイル付きのタイトルを含める必要があります。

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)
6
Shatnerz

PostMessageオプションを使用する必要があります-RTM(from https://api.slack.com/rtm )を使用してそれを行うことはできません:

RTM APIは、デフォルトのメッセージフォーマットモードを使用してフォーマットされた単純なメッセージの投稿のみをサポートします。添付ファイルやその他のメッセージフォーマットモードはサポートしません。ユーザークライアントがチャットを呼び出すことができるため、より複雑なメッセージを投稿するにはas_userがtrueに設定された.postMessageWebAPIメソッド。

2
user5247482