将 Canvas 张图片分享到 Facebook

Share Canvas Images to Facebook

大家好,我正处于该项目的最后一步,我已将我的 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){});

}); 

我发现即使元 属性 已附加到页面。 Facebook 仍然采用默认 URL。我该如何改变这个?

在本地浏览器版本上添加 opengraph 元标记不起作用,因为 facebook 爬虫会抓取页面的 "server version"。作为 'raketrad_save_to_server' 操作的一部分,您应该做的是在您的服务器上存储适当的信息,以便您传递给 FB.ui/share 方法的 url 页面将包含正确的元属性。

我无法使用共享功能,但 Feed 对我有用

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

希望这对寻找类似内容的其他人有所帮助