用户自定义 SVG,当他们满意时,我想给他们在 Facebook 上分享图像的选项。
我知道 Facebook 不接受 SVG,所以,在阅读了这个问题之后,我想出了以下使用canvg
:
var svgText = "<svg>" + $("#canvas2").html() + "</svg>";
canvg(document.getElementById('drawingCanvas'), svgText);
var img = document.getElementById('drawingCanvas').toDataURL("image/png");
.toDataURL
尽管,的命名img
不是一个 URL(至少,我不认为它是),而是一个大于 10,000 个字符的字符串,与data:image/png;base64,...
.
如果我然后尝试允许用户在 Facebook 上分享 PNG,
window.FB.ui({
href: "https://dna.land",
method: 'feed',
name: 'name',
link: "dna.land",
picture: img,
caption: 'mywebsite.com',
description: "description",
message: "message"
}, function(response) {});
我得到的错误消息是“参数href”是必需的(我清楚地提供了......也许img
太长并且JSON被截断了?),虽然我也看到我没有提供有效的URL为picture
.
如何在 Facebook 上分享图像数据?
如果无法使用 PNG 的原始 base 64 编码来执行此操作,我不反对将 PNG 文件临时存储在服务器上。但是,理想情况下,我只会存储 24 小时、几个月或一小段时间,然后能够在用户帖子不消失的情况下将其删除。那可能吗?