【问题标题】:How to Detect Facebook Connection to Avoid Redirection?如何检测 Facebook 连接以避免重定向?
【发布时间】:2013-12-18 01:34:56
【问题描述】:

我有一个网页(在 Drupal 6 中),其中包含一个 Facebook 点赞按钮和一个评论框。 Facebook 通过开放图形标签接收必须共享的信息。匿名用户无法访问本网站,仅限注册用户访问。

当匿名用户尝试打开网站时,他会被重定向到登录页面。问题来了:当 Facebook 扫描页面以接收应该共享的信息时,站点以匿名用户身份处理并重定向到登录页面。所以 Facebook 会收到登录页面的信息(图片、描述)。当 Facebook 试图扫描我的网站以避免将其重定向到登录页面(不知何故没有 Facebook API)时,我能否以某种方式决定/验证?

【问题讨论】:

  • 您可以使用一种方式,这样如果用户登录,则将调用 facebook api 或者它不会调用 facebook api。在您登录的用户 ID 中使用 if else 语句
  • 我不想使用FB API,如果没有任何方法可以解决问题。
  • 如果你想使用facebook like按钮,那么你必须使用facebook API,没有其他出路。
  • 您可以获取 Facebook IP 列表 (stackoverflow.com/questions/11164672/…) 并让他们绕过身份验证。不过要小心。
  • 按照@soulseekah 的建议使用 IP,和/或识别 Facebook 用户代理 facebookexternalhit/1.1 (+http: //www.facebook.com/externalhit_uatext.php) 并且不重定向到登录页面是解决此问题的最佳方法。

标签: php facebook redirect


【解决方案1】:

您可以获取 Facebook IP 列表 (List of IP Space used by Facebook) 并让它们绕过 Drupal 的身份验证。

另一个选项是覆盖描述、图像和标题(请参阅:Want custom title / image / description in facebook share link from a flash app)。

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

保持安全。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-12-26
    • 1970-01-01
    • 2011-11-24
    • 2017-12-04
    • 2023-01-25
    • 2019-07-08
    • 1970-01-01
    相关资源
    最近更新 更多