如何使用SDK修改Facebook共享中显示的文本和图像?

时间:2016-01-14 09:49:56

标签: javascript facebook

试图浏览Facebook的文档就像穿越蒙着眼睛的繁忙高速公路一样。我已经初始化了他们的Javascript SDK:

<script>
  window.fbAsyncInit = function() {
    FB.init({
      appId      : '597118477106840',
      xfbml      : true,
      version    : 'v2.5'
    });
  };

  (function(d, s, id){
     var js, fjs = d.getElementsByTagName(s)[0];
     if (d.getElementById(id)) {return;}
     js = d.createElement(s); js.id = id;
     js.src = "//connect.facebook.net/en_US/sdk.js";
     fjs.parentNode.insertBefore(js, fjs);
   }(document, 'script', 'facebook-jssdk'));
</script>

我有自己设计的分享按钮:

<button class="ui facebook button">Share</button>

然后我们会在点击后实际了解。

Facebook给出了非常令人困惑的例子。 他们的第一个:

FB.ui({
  method: 'share',
  href: 'https://developers.facebook.com/docs/',
}, function(response){});

而且,就在这个片段的下方,他们说:

  

在此网址的页面上包含开放图形元标记以自定义   回归Facebook的故事。

好吧,够简单。所以我这样做:

<meta property="og:url"                content="my-page.com" />
<meta property="og:type"               content="article" />
<meta property="og:title"              content="I really hate Facebook's docs" />
<meta property="og:description"        content="Sub text?" />
<meta property="og:image"              content="image.jpg" />

但是,这根本不起作用。它使用相同的自动生成的图像和文本进行共享。所以我继续阅读并找到这句话:

  

使用FB.ui函数触发共享对话框   share_open_graph方法参数,用于共享Open Graph故事。

好吧,你真的只是说我可以用常规方法来做,但让我们试试吧。他们的片段:

FB.ui({
  method: 'share_open_graph',
  action_type: 'og.likes',
  action_properties: JSON.stringify({
      object:'https://developers.facebook.com/docs/',
  })
}, function(response){});

这时,将object更改为我的网页网址时,每次都会出现不同的错误。有时它会说og:title不是字符串。有时候它会尝试喜欢这个页面(但是在使用它时不会显示出来)。有时它会尝试与错误的图像和文本共享。它还会遇到其他一些错误。

og.likes甚至是什么? Facebook拒绝列出任何其他action_types以及action_properties,但无法解释它们是什么。他们写这个:

  

指定要发布的Open Graph操作类型的字符串,例如,   og.likes为内置的类型。

应该注意的是,这个例子来自如何 SHARE 的东西,而不是它们。那是什么给出了什么?

如何以正确的方式执行此操作?

1 个答案:

答案 0 :(得分:0)

感谢评论中的CBroe,我找到了the debugger,这非常有用,因为它不仅可以调试,还可以重新打开页面以获取正确的信息(当然,文档无法链接到那个,因为那时候他们实际上不会没用。)

“Open Graph”表示两种不同的东西,这很棒。所以,不,没有必要发布一个“Open Graph story”来使用这些标签。如果你使用open_graph_story,调试器会抛出各种奇怪的错误,但回到常规的share它会起作用,除此之外:

<meta property="og:image" content="image.jpg" />

这需要是一个绝对的网址,因为它是无限愚蠢的。

解决这个问题,一切正常。