试图浏览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 的东西,而不是它们。那是什么给出了什么?
如何以正确的方式执行此操作?
答案 0 :(得分:0)
感谢评论中的CBroe,我找到了the debugger,这非常有用,因为它不仅可以调试,还可以重新打开页面以获取正确的信息(当然,文档无法链接到那个,因为那时候他们实际上不会没用。)
“Open Graph”表示两种不同的东西,这很棒。所以,不,没有必要发布一个“Open Graph story”来使用这些标签。如果你使用open_graph_story
,调试器会抛出各种奇怪的错误,但回到常规的share
它会起作用,除此之外:
<meta property="og:image" content="image.jpg" />
这需要是一个绝对的网址,因为它是无限愚蠢的。
解决这个问题,一切正常。