使用javascript为facebook feed设置标题,描述和网址

时间:2014-10-13 17:45:23

标签: facebook facebook-apps

我有这段代码 - >

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。

1 个答案:

答案 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标记。