将自定义名称,标题,图像,描述添加到新的Facebook共享对话框或自定义故事中,不从og meta获取它们

时间:2014-05-28 13:09:18

标签: facebook facebook-graph-api facebook-javascript-sdk facebook-apps facebook-sharer

我正在处理一个测验脚本。因此,我想分享测验的结果,而不是og元数据。

我知道可以使用旧的FB.ui feed动作添加自定义名称,标题,说明和消息,而不是共享网址。 E.g:

    FB.ui({
    method: 'feed',
    href: url,
    name: name,
    caption: title,
    description: des,
    message: message,
    picture: img,
}, function(response){});

但是我想这会很快被弃用?!

这也适用于新的分享API吗?或者我可以用自定义故事来做这件事吗?怎么样?我正在寻找像

这样的东西
    FB.ui({
    method: 'share',
    href: url,
    name: name,
    caption: title,
    description: des,
    message: message,
    picture: img,
}, function(response){});

但这不起作用:/它只需要href。其他一切都被忽略而不是预先填写:(

是否有最佳做法或Facebook建议的方法来执行此操作?

API文档:https://developers.facebook.com/docs/sharing/reference/share-dialog

THX。我非常感谢你的帮助

5 个答案:

答案 0 :(得分:10)

于27.06.2018更新。 旧版本的代码停止正常工作。共享图像在左侧显示为小图像,而不是大型全列图像。修复方法是将action_type: 'og.shares'替换为action_type: 'og.likes'

使用此代码:

    FB.ui({
    method: 'share_open_graph',
    action_type: 'og.likes',
    action_properties: JSON.stringify({
        object: {
            'og:url': url,
            'og:title': title,
            'og:description': des,
            'og:image': img
        }
    })
},
function (response) {
// Action after response
});

适用于API版本2.9 + 。请注意,使用og.shares action_type时不再建议,因为FB文档中没有提及它并且没有正确显示大图像。我现在使用og.likes。一个小的缺点就是像“John Doe喜欢on bb上的对象”这样的句子位于共享对话框顶部附近并在用户墙上共享内容。

完整的工作示例结帐Dynamically change Facebook open graph meta data with JavaScript

答案 1 :(得分:5)

我不知道在“共享”对话框中记录了这些参数的位置,但我猜了一下,这些都可以正常工作。作为提示,请更改“' name'您在Feed方法中使用的参数标题为'。我是从一个网页上的多个共享按钮自定义共享。显然,取代所有的定制......'变量带有您自己的变量或'字符串':

FB.ui({
        method: 'share',
        href: 'http://yourwebpage.com',
        picture: customImage,
        title: customTitle,
        description: customDescription,
        caption: customCaption

    }, function(response) {});

答案 2 :(得分:0)

我实际上必须为每个可能的答案创建一个页面,并为每个答案添加不同的og metas,但您可以使用一些URL解释器(如code igniter)来生成url及其内容,然后只需创建一个要插入的函数meta标签动态。这类似于RESP Web服务api,其中url实际上不是服务器的位置,而是对函数及其参数的调用。

答案 3 :(得分:0)

实际上这对我有用

            FB.ui({
                method: 'share',
                href: urlHost+link,
                // method: 'feed',
                title: name,
                link: urlHost+link,
                picture: urlHost+"/assets/images/fb.jpg",
                caption: "Interbank",
                description:description  

答案 4 :(得分:-4)

我认为您的href网址应该使用元数据,以便Facebook可以获取这些信息。

来自Facebook开发者页面:

  

在此网址的页面上包含open graph meta tags以自定义   回归Facebook的故事。