Sending and receiving messages is demonstrated numerous times in the BDK 2.0 courses. Please refer to the demos at the end of the chapters. Attachments are an optional field in the Message object, which accepts any type of InputStream. An example using FileInputStream
would look like this:
// Java
Attachment file = new Attachment(new FileInputStream("./data.csv"), "data.csv");
Message msg = Message.builder().attachments(List.of(file)).content("Hello").build();
bdk.messages().send(streamId, msg);
# Python
with open("data.csv", "rb") as file:
await bdk.messages().send_message(stream_id, Message(content="Hello", attachments=[file]))
An error occurs in FileInputStream. The following is the error content,
'Attachment (java.io.InputStream, java.lang.String)' in'com.symphony.bdk.core.service.message.model.Attachment'cannot be applied to'(java.io.FileInputStream)'
Apologies - FileInputStream requires a second argument representing the displayed file name. I've revised the answer to reflect this.
Thanks @Young Sheng Tan, I managed to get attachments to work with your example! Unfortuately the gif then the gif wasn't updating (refereshing for gifs) so I posted in this as an issue on github. https://github.com/finos/symphony-bdk-python/issues/262
Thanks to @symphony-youri for this one! Now the gifs should update!
with open("giphy.gif", "rb") as file, \
open("giphy.gif", "rb") as filePreview:
message = Message(content="<messageML>Hello, World!</messageML>",
attachments=[(file1, filePreview)])
await message_service.send_message(stream...
Can anyone please share an example of doing this in Python?