Facebook:在发布需要对象引用时显示打开的图形对话框

Facebook: show open graph dialog when posting expects object reference

我想显示打开的图形对话框,以允许用户在他们的时间轴上 post 之前写一条消息。我正在尝试使用 share_open_graph dialog,但出于某种原因,它表示操作未引用对象。

我知道对此有一些疑问,但对我没有帮助。另外,我想知道为什么我的第二个代码有效(我知道它不显示对话框)以及为什么第一个无效,当我找到解决方案时,为什么这个解决方案。

这是我使用 Facebook 打开图表对话框的代码:

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){});

我的动作是decorate,对象是room。如您所见,我引用了 action_properties 中的对象。

使用 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 发现的那样,这是使用 Open Graph 对象调用共享对话框的正确方法。

FB.ui({
  method: 'share_open_graph',
  action_type: 'alexdecasa:decorate',
  action_properties: JSON.stringify({
      room:'url-to-my-room',
  })
}, function(response){});

您要共享的对象的 URL 应包含相关的开放图元标记,以便共享正常工作。

相关的 Facebook 文档在这里:https://developers.facebook.com/docs/sharing/reference/share-dialog

重要步骤:在此 URL 页面上包含开放图元标记,以自定义分享回 Facebook 的故事。