Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/facebook/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Facebook:发布对象引用时显示“打开图形”对话框_Javascript_Facebook_Facebook Graph Api_Facebook Javascript Sdk - Fatal编程技术网

Javascript Facebook:发布对象引用时显示“打开图形”对话框

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

我想显示“打开图形”对话框,允许用户在发布时间线之前编写消息。我试图使用“共享打开图形”对话框,但出于某种原因,它表示该操作未引用对象

我知道有一些问题,但这对我没有帮助。另外,我想知道为什么我的第二个代码可以工作,我知道它没有显示对话框,为什么第一个代码没有,当我找到解决方案时,为什么是这个解决方案

这是我使用Facebook open graph对话框的代码:

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的故事