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

将自定义名称、标题、图像、描述添加到新的facebook共享对话框中,或添加不从og meta获取的自定义故事,facebook,facebook-graph-api,facebook-javascript-sdk,facebook-apps,facebook-sharer,Facebook,Facebook Graph Api,Facebook Javascript Sdk,Facebook Apps,Facebook Sharer,我只是在写一个测验脚本。因此,我想分享测验的结果,而不是og元数据 我知道可以使用旧的FB.ui提要操作添加自定义名称、标题、描述和消息,而不是共享url。例如: FB.ui({ method: 'feed', href: url, name: name, caption: title, description: des, message: message, picture: img, }, function(response){}

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

我知道可以使用旧的FB.ui提要操作添加自定义名称、标题、描述和消息,而不是共享url。例如:

    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文档:


Thx.我非常感谢您的帮助

我认为您的href URL应该使用元数据,以便Facebook能够获得这些信息

从Facebook开发者页面:

在页面上此URL处包含以自定义 分享回Facebook的故事


实际上,我必须为每个可能的答案创建一个页面,并在每个答案中添加不同的og元,但您可以使用一些url解释器来生成url及其内容,然后创建一个函数来动态插入元标记。这与RESP web service api类似,url实际上不是服务器的位置,而是调用函数及其参数。

我不知道这些参数在共享对话框的何处被记录,但我有一个猜测,这些都可以工作。作为提示,请将Feed方法中使用的“name”参数更改为“title”。我是一个网页上多个共享按钮的自定义共享。显然,替换所有“自定义”按钮。..'带有您自己的变量或“字符串”的变量:

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

    }, function(response) {});

事实上,这对我有用

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

2019年更新。 此方法不再有效。尚未找到新的解决方案:(

2018年6月27日更新。 旧版本的代码已停止正常工作。共享图像在左侧显示为小图像,而不是大的全列图像。修复方法是将
操作类型:“og.shares”
替换为
操作类型:“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\u type
,因为FB文档中没有提到它,并且它不能正确显示大图像。我现在使用
og.likes
。小缺点是句子like“John Doe喜欢drib上的对象”位于“共享”对话框顶部附近,并在用户墙上共享内容


用于完整的工作示例签出。

无法使用open graph元标记,因为我想共享个人用户的测验结果。正在寻找fb api 2.0的解决方案我不是fb api的专家,但据我所知,您仍然可以将元标记用于动态页面。我的意思是,您的URL将具有“测验结果id”"这样你的标签就会被动态加载。没有url是相同的。测验完全在js Base的客户端。你解决了这个问题吗?Facebook让我为此感到痛苦,不赞成自定义共享选项是荒谬的。你的答案根本没有回答这个问题。Manuel描述的问题正是你提出的解决方案ave.href url的OG标签被用于共享,他不想这样。我否决了你的答案。这是一个很好的问题。我仍在努力解决这个问题。(旁注:即使feed API现在对我来说也不太好,但这可能是我的错。)Manuel你能不能把feed放进去而不是共享,看看会发生什么,然后再报告?你为什么说它很快就会被弃用?我在feed对话框中找到了这些:是的,feed对话框的参数在那里有很好的文档记录。但问题是“共享”对话框的参数是什么?似乎没有多个indi的文档记录如问题中所述,单个页面上的个人共享。我上面的示例与个人共享的共享对话框一起工作。仅供参考,现在已弃用-从图表v2.9开始,这些用于自定义图片、标题和描述的额外字段已弃用,不再起作用。如果您使用图表v2.8,它将在2017年7月17日之前正常工作正如预期的那样,只有一个问题,它说“Deepak Mahakale在博客上共享了一个对象。”@DeepakMahakale感谢您的反馈,不幸的是,我没有想出如何修复此问题。我怀疑目前可能不可能,但由于此功能没有很好的文档记录,因此无法100%确定。是的,如果您发现任何东西,请分享。因为由于此对象的原因,我不得不使用meta标记。另外,请告诉我是否有有人问的任何问题。我可以开始悬赏。链接到该网站的现在是“更新30.04.2019。此方法不再有效。当我发现如何动态覆盖og元数据时,解决方案将发布在此处。”