我们正在客户网站的各个页面上使用FB Like / Share功能。在我们想要共享的每个页面上,我们在元标记中添加以下内容:
<head id="ctl00_Head1">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta http-equiv="Expires" content="0" />
<meta http-equiv="X-UA-Compatible" content="IE=8" />
<!-- social sharing metadata -->
<meta property="og:title" content="Our Site Title" />
<meta property="og:description" content="A description to be used in the share dialog." />
<meta property="og:image" content="http://us.oursite.com/images/FB_ShareThumbnail_US.png" />
<title>Our Page Title</title>
<!-- favicon -->
<!-- stylesheet and js links -->
<!-- inline js -->
</head>
此外,我们还会显示一张带有以下HREF的Facebook图片:
<A href="http://www.facebook.com/sharer.php?u=http%3a%2f%2fus.oursite.com%2fOurPage.aspx%3fid%3d999&t=Our+Site+Title" target=_blank><IMG src="/images/Facebook_icon_20x20.png"></A>
客户端希望使用标准的图像,标题,描述,而不管实际的页面\文章是否共享(“品牌控制”类型)。我们目前使用我们的og:meta标签设置来为每个页面/文章呈现相同的数据。
当用户点击“分享”功能时,他们没有获得页面/文章图片,也没有任何好的描述或标题(因为我认为标签应该提供)。
匿名用户可以访问当前共享的页面,因此FB bot可以访问这些页面。 og元标记中指定的图像也可供匿名用户使用。第一个问题是为什么这种共享方法似乎没有使用正确的默认共享??
接下来的问题是,下一个功能请求是让经过身份验证的页面能够与相同的默认图像,标题,描述共享。我从服务器的角度来看这个,我在那里寻找FB机器人并将机器人重定向到一个“静态”页面,其中只包含提取图像,标题,描述所需的最小标记。我已经证明了这一点并且效果很好。我觉得它可能有点复杂。想知道是否有“更好”或更“最佳”的方式来共享经过身份验证的页面并让共享功能了解我们的标准图像,标题,描述?
提前致谢!
更新: 我在StackOverflow上发现了这个相关的Q / A:Facebook Share doesn't show my description or my thumbnail
当我问“想知道是否有更好”或更“最佳”的方式来共享经过身份验证的页面并让共享功能知道我们的标准图像,标题,描述?“,这就是我在谈论的事情。如果我可以通过查询字符串参数传递Facebook sharer.php所需的所有数据(这导致不需要/采取Facebook刮刀操作),这是理想的,那么我不需要编写任何服务器端逻辑来重新路由Facebook刮刀。 我尝试使用上面提到的Q / A中提供的Url,重新格式化我的数据,但没有运气。想知道这是否记录在FB的某处?
答案 0 :(得分:9)
为什么它没有使用提供的og元数据可能有很多原因,但除非您与我们分享代码/网址,否则我们可以猜出可能存在的问题。
<head>
标记内,因为它不会在其他任何地方查找它们。如果您在<body>
标记或其他位置定义它们,则会忽略它们。如果这些步骤都没有解决问题,请分享网址/代码。
关于经过身份验证的页面的问题,您可以在公共的,未经过身份验证的页面上添加该元数据,而无需检查它是否真的是Facebook,就像有人共享页面时那样,相同的信息无论查看共享的用户是否有权访问该页面,都会变为公开。
答案 1 :(得分:4)
在进一步挖掘之后,我找到了一种方法来使用“sharer.php”功能来准确指定我想要显示的图像,URL,标题和描述,而不依赖于OG元标记。这适用于匿名访问的页面和需要经过身份验证的用户的页面。链接的StackOverflow Q / A(http://stackoverflow.com/questions/2950189/facebook-share-doesnt-show-my-description-or-my-thumbnail)让我朝着正确的方向前进,然后经过一些挖掘,通过搜索“sharer.php”在Facebook开发者论坛(http://forum.developers.facebook.net/)中找到了一些其他帖子。特别是这个让我到了我需要的地方:http://forum.developers.facebook.net/viewtopic.php?id=101127
实质上,不需要OG元标记。只需确保您的网址正确编码并使用正确的参数密钥(即“&amp; p [title] =”而不是“&amp; t =”。
从我们的网站/页面中删除OG元标记后,我还修改了我们的Facebook共享按钮/链接以呈现以下标记:
<a href="http://www.facebook.com/sharer.php?s=100&p[title]=Our+Site+Title&p[url]=http%3a%2f%2fus.oursite.com%2fdefault.aspx&p[images][0]=http%3a%2f%2fus.oursite.com%2fimages%2fFB_ShareThumbnail_US_90x85.png&p[summary]=Our+facebook+description+that+is+used+on+the+FB+share+page." target="_blank">
<img src="/images/fb_icon_20x20.png" />
</a>
请注意,我很想调查是否可以找到一个允许我指定默认“消息”的参数,但这不是我们的要求,所以稍后我会挖掘这些信息。
答案 2 :(得分:0)
现在怎么样: https://developers.facebook.com/docs/sharing/webmasters/crawler
您只需将facebook抓取工具列入白名单