如何向Facebook分享对话框直接传入Blob数据?
关于Blob图片直接分享到Facebook的问题
不能直接把Blob数据传入Facebook分享对话框,原因很明确:Facebook的FB.ui分享接口要求object参数必须是公网可访问的HTTPS URL,而Blob是存储在本地浏览器内存中的数据,Facebook服务器根本无法读取这些本地内容,直接传入必然失败。
可行的解决办法只有一个:先把Blob转换成公网可访问的HTTPS图片链接,再传入分享接口。具体实现可以参考这两种方式:
- 将Blob上传到你自己的HTTPS服务器,生成对外可访问的图片URL,这是最稳定可靠的方式,能确保Facebook爬虫正常抓取图片内容。
- 如果没有自建服务器,也可以借助支持HTTPS的图床服务(通过API上传Blob获取URL),再用这个URL调用分享接口。
注意:别用URL.createObjectURL(blob)生成的本地Blob URL,这种链接只有你的浏览器能访问,Facebook服务器爬不到,分享出去其他人看不到图片。
修正后的调用代码示例:
// 假设已经通过上传拿到了公网HTTPS图片链接imageUrl window.FB.ui({ display: 'popup', method: 'share', action_type: 'og.likes', action_properties: { object: imageUrl } }, function(response){});
内容的提问来源于stack exchange,提问作者Techie123
相关产品推荐
相关产品推荐

