Javascript Facebook:发布对象引用时显示“打开图形”对话框
我想显示“打开图形”对话框,允许用户在发布时间线之前编写消息。我试图使用“共享打开图形”对话框,但出于某种原因,它表示该操作未引用对象 我知道有一些问题,但这对我没有帮助。另外,我想知道为什么我的第二个代码可以工作,我知道它没有显示对话框,为什么第一个代码没有,当我找到解决方案时,为什么是这个解决方案 这是我使用Facebook open graph对话框的代码:Javascript Facebook:发布对象引用时显示“打开图形”对话框,javascript,facebook,facebook-graph-api,facebook-javascript-sdk,Javascript,Facebook,Facebook Graph Api,Facebook Javascript Sdk,我想显示“打开图形”对话框,允许用户在发布时间线之前编写消息。我试图使用“共享打开图形”对话框,但出于某种原因,它表示该操作未引用对象 我知道有一些问题,但这对我没有帮助。另外,我想知道为什么我的第二个代码可以工作,我知道它没有显示对话框,为什么第一个代码没有,当我找到解决方案时,为什么是这个解决方案 这是我使用Facebook open graph对话框的代码: FB.ui({ method: 'share_open_graph', action_type: 'alexdeca
FB.ui({
method: 'share_open_graph',
action_type: 'alexdecasa:decorate',
action_properties: JSON.stringify({
room: {
"url": image,
"title": "Supply title",
"description": "Supply description",
"image": image
}
})
}, function(response){});
我的行为是装饰,对象是房间。如您所见,我正在引用action_属性中的对象
使用FB.api代码可以:
FB.api(
'me/alexdecasa:decorate',
'post',
{
room: {
"url": image,
"title": "Supply title",
"description": "Supply description",
"image": image
}
},
function(response) {});
我找到了解决办法。我需要在一个外部PHP文件中创建应用程序,并放置提供我的对象的元标记 现在有了这样的javascript代码,我可以毫无问题地与大家分享:
FB.ui({
method: 'share_open_graph',
action_type: 'alexdecasa:decorate',
action_properties: JSON.stringify({
room:url
})
}, function(response){
console.log(response);
});
正如Alejandro bar所指出的,这是使用打开的图形对象调用共享对话框的正确方法
FB.ui({
method: 'share_open_graph',
action_type: 'alexdecasa:decorate',
action_properties: JSON.stringify({
room:'url-to-my-room',
})
}, function(response){});
要共享的对象的URL应该包含相关的open graph元标记,以便共享正常工作
相关的Facebook文档如下:
重要步骤:在此URL页面上包含open graph meta标记,以自定义共享回Facebook的故事