Hod*_*lom 8 javascript blob file facebook-messenger facebook-messenger-bot
我有一个webview从开头的messenger bot。
从webview我想将图像数据发送到对话(没有URL-数据来自画布)。
我尝试将Messenger SDK beginShareFlow与文件数据附件一起使用:
function uploadImage(data) {
let message = {
"attachment": {
"type": "image",
"payload": {
"is_reusable": true
},
"filedata": data
}
};
MessengerExtensions.beginShareFlow(function (share_response) {
// User dismissed without error
if (share_response.is_sent) {
// The user actually did share.
//close the webview
MessengerExtensions.requestCloseBrowser(function success() {
// webview closed
}, function error(err) {
console.log(err);
});
}
},
function (errorCode, errorMessage) {
// An error occurred in the process
console.log(errorMessage);
},
message, "current_thread");
}
Run Code Online (Sandbox Code Playgroud)
但是我得到一个错误:
Messenger Extensions unexpected error.
Run Code Online (Sandbox Code Playgroud)
希望得到帮助=]
编辑:
我发现这filedata是用来传输文件位置的(我没有)。
所以我尝试了其他解决方案:
blob,并试图将它传递的filedata- 没有工作blob文件(通过添加名称和日期)并尝试移动该位置- 无效blob并尝试将其作为url(而不是filedata)移动-并出现错误:邮件内容中提供的图片网址无效
当我从浏览器转到Blob网址时,我看到了图像= [
有三种将资产附加到消息的方法:
- 网址
- 文件
- attachment_id
该attachment_id指以前上传的URL /文件附件。发送原始文件数据不是一种选择。您必须将图像上传到URL或将其保存到文件。Blob URL不起作用,因为它们仅引用存储在本地系统内存中的数据。您需要将该数据移动到服务器上的图像或文件中。
您的第一个选择是将图像上传到URL。根据图像内容的私密性,您可以使用诸如imgur之类的公共图像托管服务,也可以将图像上载到服务器上的公共位置。如果要隐藏图像,可以将图像保存在包含随机生成的哈希的URL上,并在附件上载到Messenger后立即删除该文件。但是,您可以使用第二个选项将图像完全保密:
您的第二个选择是根据文件位置上传图像。通过将图像上传到服务器上的文件,可以避免图像对公众可见。为了避免占用服务器空间,可以在附件上传后手动删除文件,也可以使用临时文件。实际上,SDK 发送文件的示例演示了如何发送保存在/tmp文件夹中的临时文件。
| 归档时间: |
|
| 查看次数: |
130 次 |
| 最近记录: |