通过facebook javascript sdk将画布图像发布到用户的墙上

时间:2013-02-16 19:56:37

标签: facebook-javascript-sdk

我动态创建了一个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.');
  }
  }
   );

但我收到错误

错误消息:图片网址格式不正确

任何人都可以帮忙,我该怎么办?

1 个答案:

答案 0 :(得分:0)

你需要将图像保存在服务器上才能这样做,你的图像必须在Facebook外面,因为FB.ui" FEED"不接受base64编码数据作为图片,这是不可能的。

它非常大的数据,如果你试图将base64代码缩短为网址缩短,你也会遇到困难。

你可以做什么,我正在做什么,是使用PHP服务器来获取Base64数据,并将其转换为图像,就像动态图像一样,好吗?但是会产生记忆问题。

另一个选项是(真的)将画布作为图像发布在用户配置文件中,因此您需要使用FB.api而不是FB.ui,使用feed对话框来共享链接,而且canvas没有标题,描述,礼仪。

发布图片后,您将收到带ID的回复,即帖子ID,这不能用于Feed作为链接或图片所有者,但如果您想共享帖子,则可以使用“共享对话框”。

这是小菜一碟,我这样做,并建议你这样做。 在Facebook平台上使用API​​发布Canvas作为图像非常棒,您可以使用JavaScript SDK来实现。