通过Circuit JS SDK中的URL发送附件中的图像



我使用的是Circuit JS SDK,希望发送带有附加图像的消息。我在文档中发现我应该将item.attachments设置为File[]对象。但是如果我只有图片URL(比如https://abc.cde/fgh.png)?

为了能够在对话中发布图像,图像需要上传到Circuit,这是在addTextItemAPI内部完成的,正如您已经发现的那样。是的,这个API接受一个File对象数组。

您需要通过XMLHttpRequest将图像下载为blob,然后构造一个File对象。

const xhr = new XMLHttpRequest();
xhr.responseType = 'blob';
xhr.open('GET',<url of image> , true);
xhr.onreadystatechange = async () => {
if (xhr.readyState == xhr.DONE) {
const file = new File([xhr.response], 'image.jpg', { lastModified: Date.now() });
const item = await client.addTextItem(convId.value, { 
attachments: [file]
});
}
};
xhr.send();

这是一个jsbinhttps://output.jsbin.com/sumarub

最新更新