我动态创建了一个html画布图像。我想通过javascript sdk将它发布到facebook用户的墙上。我正在做的是
我尝试将canvas转换为javascript图像对象&在fb.ui方法中提供最终图像
var temp = canvas.toDataURL("image/png");
var finalimage=temp.replace(/^data:image\/(png|jpg);base64,/, "");
FB.ui(
{
method: 'feed',
name: 'The Facebook SDK for Javascript',
caption: 'Bringing Facebook to the desktop and mobile web',
description: (
'A small JavaScript library that allows you to harness ' +
'the power of Facebook, bringing the user\'s identity, ' +
'social graph and distribution power to your site.'
),
link: 'https://developers.facebook.com/docs/reference/javascript/',
picture: finalimage
},
function(response) {
if (response && response.post_id) {
alert('Post was published.');
} else {
alert('Post was not published.');
}
}
);
但我收到错误
错误消息:图片网址格式不正确
任何人都可以帮忙,我该怎么办?
答案 0 :(得分:0)
你需要将图像保存在服务器上才能这样做,你的图像必须在Facebook外面,因为FB.ui" FEED"不接受base64编码数据作为图片,这是不可能的。
它非常大的数据,如果你试图将base64代码缩短为网址缩短,你也会遇到困难。
你可以做什么,我正在做什么,是使用PHP服务器来获取Base64数据,并将其转换为图像,就像动态图像一样,好吗?但是会产生记忆问题。
另一个选项是(真的)将画布作为图像发布在用户配置文件中,因此您需要使用FB.api而不是FB.ui,使用feed对话框来共享链接,而且canvas没有标题,描述,礼仪。
发布图片后,您将收到带ID的回复,即帖子ID,这不能用于Feed作为链接或图片所有者,但如果您想共享帖子,则可以使用“共享对话框”。
这是小菜一碟,我这样做,并建议你这样做。 在Facebook平台上使用API发布Canvas作为图像非常棒,您可以使用JavaScript SDK来实现。