将画布图像分享到Facebook

时间:2015-03-08 08:56:08

标签: facebook canvas share

嗨,大家好,我在这个项目的最后一步,我已经在服务器端保存了我的Canvas图像,并希望现在能够更改Facebook的共享缩略图。以下是共享部分的代码。

jQuery(document).ready(function($){
//Share the current Canvas Image to Facebook
jQuery(document).on('click','#poster',function(e){
  e.preventDefault();
  /*Save to server*/
  var canvas = document.getElementById("c");
  var imageData = canvas.toDataURL("image/png");
  $.ajax({
  type: "POST",
  url: rkax.ajaxurl,
  data: { 
         action: 'raketrad_save_to_server',
         imgBase64: imageData
  }
}).done(function(img_url) {
  console.log(img_url);
 $('body').append('<meta property="og:image" content="'+img_url+'" />');
 FB.ui({
        method: 'share',
        href: window.location.href,
      }, function(response){});

}); 

我发现即使将meta属性附加到页面上也是如此。 Facebook仍然采用默认网址。我该怎么做呢?

2 个答案:

答案 0 :(得分:2)

我无法获得分享功能,但是Feed对我有用

 FB.ui({
  method: 'feed',
  link: window.location.href,
  picture: img_url,
 }, function(response){});

希望这可以帮助其他人寻找类似的东西

答案 1 :(得分:0)

在本地浏览器版本上添加opengraph元标记不起作用,因为facebook抓取工具会刮掉页面的“服务器版本”。作为'raketrad_save_to_server'操作的一部分,您应该做的是在服务器上存储相应的信息,以便在传递给FB.ui/share方法的网址上提供的页面将包含正确的元属性。