Javascript FB.ui共享设置标题、消息和图像
我正在使用FB.ui将一个页面共享到Facebook,我正在尝试设置标题和消息(如果可能,则设置图像,但不重要)。我的站点标题中有这个Javascript FB.ui共享设置标题、消息和图像,javascript,facebook,fb.ui,Javascript,Facebook,Fb.ui,我正在使用FB.ui将一个页面共享到Facebook,我正在尝试设置标题和消息(如果可能,则设置图像,但不重要)。我的站点标题中有这个 <meta property="og:title" content="Your title here" /> <meta property="og:description" content="your description here" /> 根据我所读的内容,我只需要og:titlean和og:description来设置标题和消息,
<meta property="og:title" content="Your title here" />
<meta property="og:description" content="your description here" />
根据我所读的内容,我只需要og:titlean和og:description来设置标题和消息,但这似乎不起作用
当前标题要么来自部分标题,要么来自图像上的alt标记,而消息仅由随机段落标记填充。元数据可能由Facebook缓存。尝试在Facebook调试器中输入您的url: 这将清除缓存 对于图像,请使用以下命令:
<meta property="og:image" content="http://yourimage">
Facebook文档说“share”方法只有href参数,但我发现它不是真的。您可以使用与“feed”方法非常相似的参数。这就是我所使用和使用的:
FB.ui(
{
method: 'share',
href: 'your_url', // The same than link in feed method
title: 'your_title', // The same than name in feed method
picture: 'path_to_your_picture',
caption: 'your_caption',
description: 'your_description',
},
function(response){
// your code to manage the response
});
我找到了这篇文章,并尝试实现上面提到的步骤。在浪费了几个小时之后,我看到了上面@SMT的评论 我在v2.10中肯定不再工作了 我的客户已经在等待此功能,因此我必须找到解决方法。 请注意:我为WordPress编写了这个解决方案,所以您可以更改几行,使其在您的站点上工作 让我们从我的HTML代码开始 包含图像和按钮的包装:
<div class="my-image-container">
<img src="http://example.com/image.jpg">
<a href="#" class="fb-share-image">Share</a>');
</div>
下一步是处理URL参数。这段代码是YOAST为WordPress和WordPress SEO编写的,但您可以简单地将其更改为与您的CMS一起使用。
将其添加到函数中。php:
add_filter('wpseo_opengraph_image',function( $img ){
if( array_key_exists( 'og_img', $_GET ) )
return $_GET['og_img'];
return $img;
});
add_filter('wpseo_opengraph_url',function( $url ){
if( array_key_exists( 'og_img', $_GET ) )
return $url . '?og_img=' . $_GET['og_img'];
return $url;
});
一般的想法是为每个图像创建一个单独的URL,该URL只会更改OG参数,因此Facebook必须逐个删除每个图像。
为了避免任何SEO问题,你应该在你的标题中有一个指向原始URL的规范标签。下面是一个例子。您正在使用的代码已被弃用。您可以使用以下命令 与动态覆盖的属性共享对话:
FB.ui({
method: 'share_open_graph',
action_type: 'og.shares',
display: 'popup',
action_properties: JSON.stringify({
object: {
'og:url': 'https://your-url-here.com',
'og:title': 'Title to show',
'og:description': 'The description',
'og:image': 'https://path-to-image.png'
}
})
}, function(response) {
// Action after response
});
有关详细的工作示例,请参阅签出:
如果你在Facebook上共享一个网页(带有og元标签),并在以后更新标题和描述等,它们不会在Facebook上立即更新,因为Facebook会缓存你的网页,并在2天后再次废弃该网页
因此,如果你想立即更新Facebook上的标题、描述等,你需要使用工具再次废弃该网页。从2018年1月1日起,我可以使用
共享开放图方法。这是可行的,但似乎很神奇,而且没有文档记录,所以请注意编码者
shareOnFB: function() {
var img = "image.jpg";
var desc = "your caption here";
var title = 'your title here';
var link = 'https://your.link.here/';
// Open FB share popup
FB.ui({
method: 'share_open_graph',
action_type: 'og.shares',
action_properties: JSON.stringify({
object: {
'og:url': link,
'og:title': title,
'og:description': desc,
'og:image': img
}
})
},
function (response) {
// Action after response
});
如果您有公共存储桶,但仍然无法与facebook共享您的图像,请检查您的后端s3存储桶图像上载代码
var data = {
Bucket: bucketName,
Key: fileName,
Body: buf,
ContentEncoding: 'base64',
ContentType: 'image/jpeg',
};
s3Bucket.putObject(data, function(err, data){
if (err) {
console.log(err);
console.log('Error uploading data: ', data);
callback(err);
} else {
console.log('succesfully uploaded the image!');
callback(null,"");
}
});
从数据对象中删除ContentType:'image/jpeg',
。这应该写在文档中。谢谢。顺便说一句,从Graph API v2.9开始,此功能不再有效。它在Feed对话中也被弃用,并将于2017年7月17日正式消亡。谢谢facebook/这个过程很有帮助。那么,是否有任何解决方案可以使用javascript代码传递href、图片、标题和描述?是否有其他方法可以在facebook上共享提要,我使用的是v2.7,运行良好。但现在它突然停止在facebook上分享内容。需要帮助…我找到了一个解决方法,从20180101开始使用share\u open\u graph
方法。请参阅下面的答案。看起来像是我一直在搜索的解决方法,因为自定义图像参数已失去其功能。但是,当我按照说明执行所有操作时,单击我的共享按钮将打开一个消息窗口,其中显示“无效的应用程序ID:0”。是不是我完全误解了这个解决方案?我试图在Wordpress生成的常规页面上实现它。不知道什么是Facebook应用程序等。你需要创建自己的Facebook应用程序,并在第3行插入你的应用程序ID。只需要几分钟:谢谢!完成所有这些,并调整您的脚本。仍然只能获取标准的共享窗口内容(与站点og相同)。你确定在同一页上不同的共享按钮可以获得不同的图像吗?我真的做到了!所以,你是我的英雄!这个答案应该链接到2017年7月以后的所有帖子,作为解决办法。伟大的这对我来说非常合适。非常感谢你救了我一天!:)这是完美的,直到几天前:(…参考:你能帮我在facebook上只分享描述吗?这个问题已经不起作用了。
shareOnFB: function() {
var img = "image.jpg";
var desc = "your caption here";
var title = 'your title here';
var link = 'https://your.link.here/';
// Open FB share popup
FB.ui({
method: 'share_open_graph',
action_type: 'og.shares',
action_properties: JSON.stringify({
object: {
'og:url': link,
'og:title': title,
'og:description': desc,
'og:image': img
}
})
},
function (response) {
// Action after response
});
var data = {
Bucket: bucketName,
Key: fileName,
Body: buf,
ContentEncoding: 'base64',
ContentType: 'image/jpeg',
};
s3Bucket.putObject(data, function(err, data){
if (err) {
console.log(err);
console.log('Error uploading data: ', data);
callback(err);
} else {
console.log('succesfully uploaded the image!');
callback(null,"");
}
});