我有这段代码 - >
window.fbAsyncInit = function () {
FB.init({
appId: 'AppId',
xfbml: true,
version: 'v2.1'
});
};
(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'));
编辑:在文档准备好并点击元素后调用下一个代码部分 - >
FB.ui({
method: 'share_open_graph',
action_type: 'og.likes',
action_properties: JSON.stringify({
"og:url": url,
"og:title": settings.pageName,
"og:description": description
})
}, function (response) { });
并在其中说我必须定义一个对象时出错。我想做的就是决定自己设置标题,描述,网址和图像。没有在应用程序设置页面中进行大量配置。这可能吗?
据我了解,我必须创建某种类型的故事对象,但这似乎对我的故事有点过分。
谢谢!
编辑:添加了错误消息,之后是英文翻译。
Action Requires At Least One Reference: Åtgärden som du försöker publicera är inte giltig eftersom det inte finns något referensobjekt angivet. Åtminstone en av följande egenskaper måste specificeras: object.
Action Requires At Least One Reference: The action you are trying to publish is invalid because there is no reference object set. At least one of the following must be specified: Object.
错误代码为1611072。
答案 0 :(得分:1)
尝试使用FB.ui
时,未初始化JavaScript SDK。您需要在FB.ui
之后致电FB.init
。但我建议只在用户交互(鼠标点击)上直接调用FB.ui
,否则它可能会在浏览器中被阻止。
你必须考虑异步。
关于参数:根据文档,你不能动态设置标题和描述,只有URL,我假设它将从该URL获取Open Graph数据:
FB.ui({
method: 'share_open_graph',
action_type: 'og.likes',
action_properties: JSON.stringify({
object:'https://developers.facebook.com/docs/',
})
}, function(response){});
来源:https://developers.facebook.com/docs/sharing/reference/share-dialog
是的,你需要在开发者设置(Open Graph> Action Types)中创建一个“Action Type”,然后你需要通过og.likes进行审核。所以如果你只想分享一些东西,这将是最简单的方法:
FB.ui({
method: 'share',
href: 'https://developers.facebook.com/docs/',
}, function(response){});
但即使使用该解决方案,您也无法定义自定义标题/说明,它将始终采用Open Graph标记。