发布自定义Open Graph故事时,Facebook Share Dialog无法识别自定义参考对象

时间:2014-05-13 20:52:44

标签: javascript facebook facebook-graph-api facebook-opengraph

所以我有一个Facebook网页应用程序,我试图使用Facebook Javascript SDK和FB.ui函数在用户的墙上发布自定义Open Graph故事。

我有自定义操作' Ride'和自定义对象'距离'我想发布一个自定义的故事'骑一个距离'。

点击按钮触发下面的我的功能:

function postDistanceRidden() {
  FB.ui({
    method: 'share_open_graph',
    action_type: 'APP_NAME:ride',
    action_properties: JSON.stringify({
        distance:{
          "og:type" : "APP_NAME:distance",
          "app_id" : "APP_ID",
          "og:url" : 'PUBLIC_URL',
          "og:title" : "My Title",
          "og:image" : "PUBLIC_IMAGE_URL",
          "APP_NAME:distance_value" : "10",
          "APP_NAME:distance_unit" : "miles",
        },
    })
  }, function(response){});
}

当我点击按钮并运行上面的功能时,我会看到一个Facebook弹出窗口,其中包含以下错误:"操作需要至少一个参考:您尝试发布的操作无效,因为它没有指定任何引用对象。必须至少指定以下属性之一:distance。"

我不确定我做错了什么。此外,我尝试使用Facebook定义的自定义动作/对象替换上述代码,并且它有效(例如,喜欢'文章')。任何帮助将不胜感激。请告诉我是否需要提供更多信息。

谢谢!

1 个答案:

答案 0 :(得分:0)

您需要创建一个"自托管对象"并传递你的对象的网址。

function postMyAction() {
    FB.ui({
         method: 'share_open_graph',
         action_type: 'APP_NAME:action',
         action_properties: JSON.stringify({
             object: "my_url_object"
         },
    })
    }, function(response){});
}

在对象html中:

<head>
    <meta property='fb:app_id' content='app_id'/>
    <meta property='og:type' content='my_app:object'/>
    <meta property='og:title' content='my_object_title'/>
    <meta property='og:image' content='an_image'/>
    <meta property='og:url' content='self_url'/>
</head>