2017-03-08 8 views
2

私は、スラックボットを使用して、スラックチャットに添付ファイル付きのメッセージを送信しようとしています。 apiへの接続はWebSocket経由で行われ、今まではすべて正常に動作しますが、添付ファイル付きのメッセージを送信します。 "、唯一のテキストフィールド、私が言ったように、Slack APIのみテキストフィールドを取得する

{"type":"message","channel":"D4CJ8B337","text":"New book!","attachments":[{"fallback":"Something went wrong","color":"#3AA3E3","title":"Do you want to buy this book?","actions":[{"name":"Buy","value":"Yes","text":"Buy","type":"button"},{"name":"No","value":"No","text":"No","type":"button"}],"attachment_type":"default","callback_id":"Djisda"}]} 

をしかし:

public final void replyInteractive(WebSocketSession session, Event event, InteractiveMessage reply) { 
    try { 
     reply.setText(encode(reply.getText())); 
     reply.setType(EventType.MESSAGE.name().toLowerCase()); 
     if (reply.getChannel() == null && event.getChannelId() != null) { 
      reply.setChannel(event.getChannelId()); 
     } 
     session.sendMessage(new TextMessage(reply.toJSONString())); 
     if (logger.isDebugEnabled()) { // For debugging purpose only 
      logger.debug("Reply (Message): {}", reply.toJSONString()); 
     } 
    } catch (IOException e) { 
     logger.error("Error sending event: {}. Exception: {}", event.getText(), e.getMessage()); 
    } 
} 

そしてこれは、このコードが送信されるJSONです:ここでは

は、メッセージを送信するコードスニペットです新しい本! "と表示され、チャットに表示されます。 Slack Message Builderを使ってテストしたとき、メッセージ全体が有効であるようです。 それは、あらかじめありがとうございます。

答えて

2

問題が見つかりました。 RTM APIはメッセージ内の添付ファイルを受け入れません。

スラックドキュメント(https://api.slack.com/rtm)から:

RTMのAPIは、当社のデフォルトのメッセージ書式設定モードを使用してフォーマットされたシンプルなメッセージを投稿サポートしています。添付ファイルやその他のメッセージフォーマットモードはサポートしていません。

添付ファイルを送信するために、あなたはchat.postMessage方法https://api.slack.com/methods/chat.postMessage

を使用する必要があります
関連する問題