如何检测Facebook连接以避免重定向


How to Detect Facebook Connection to Avoid Redirection?

我有一个网页(在Drupal 6中),其中包含一个类似Facebook的按钮,一个类似评论框的按钮。Facebook通过开放的图形标签接收必须共享的信息。此网站不可供匿名用户访问,仅可供注册用户访问。

当匿名用户试图打开网站时,他会被重定向到登录页面。问题来了:当Facebook扫描页面以接收应该共享的信息时,该网站会作为匿名用户进行处理,并重定向到登录页面。因此,Facebook接收登录页面的信息(图片、描述)。当Facebook试图扫描我的网站以避免将其重定向到登录页面(不知何故没有Facebook API)时,我是否可以决定/验证?

您可以获得Facebook IP列表(Facebook使用的IP空间列表),并让它们绕过Drupal的身份验证。

另一个选项是覆盖描述、图像和标题(请参阅:想要从flash应用程序在facebook共享链接中自定义标题/图像/描述)。

另一种选择是有一个额外的参数,如fb=1,并生成必要的标签供facebook解析,其中包括图像、简短描述和标题,而无需任何身份验证。然后将fb=1附加到您的共享链接。在生成共享片段时,也可以感知facebookexternalhit/1.1 (+http: //www.facebook.com/externalhit_uatext.php)用户代理(感谢@madebydavid)。但是要注意不要显示或验证用户,因为任何人都可以设置用户代理标头或将fb=1附加到您的URL。

保持安全。