0

我的基于 Wordpress 的网站(开发者:volved.dyndns-blog.com)允许用户通过 Facebook 邀请朋友。当通过 fb.ui 发送消息调用发送邀请时,将添加以下作为链接参数。

http://volved.dyndns-blog.com/login/?action=register&invite_id= {3CBBBEB8-6ACF-4319-AF07-3B6C22C1091D}

“invite_id”参数通常会导致重定向。由于发现 Facebook 在看到重定向时会返回服务器错误 500,因此我更改了代码以在用户代理中检测“facebook”而不进行重定向。然而, fb.ui 调用仍然失败。我的调试工作受到了阻碍,因为在某些情况下,FB 甚至没有测试链接。它只是以代码 500 失败。也许这是由于一些缓存。我还没有弄清楚这种模式,但它似乎是在我的网站的 FB ping 不成功之后发生的。如果我稍后再试,我会看到 FB 访问该站点。

  1. 是否有其他情况会导致 fb.ui 发送服务器 500 错误?
  2. FB 是否会在不访问请求站点的情况下自动失败后续尝试?
4

1 回答 1

1

哇。感谢 Facebook 工程师为自己节省了 5 分钟的文档时间,这样我和其他人就可以浪费数小时了。我会报告我发现的。如果其他人发现更多或更准确的信息,请随时发表评论。

事实证明,当访问我的 fb.ui 发送链接http://my.domain/page/?invite=xyz时,FB 会测试它收到的 OG:Url 。

OG:url 必须是“http://my.domain/page”。参数被忽略。不允许重定向。在我的例子中,只要页面有invite_id 参数,它就会被重定向。检查请求的用户代理允许检测 FB 机器人。但是,我发现有时候,FB 也会发送 bitlybot。所以你也必须抓住它。如果将来使用不同的机器人,很可能会出现问题。

您有机会测试每个 URL,因为 FB 会缓存结果。如果您再试一次,FB 不会测试链接。如果 fb.ui 成功,它将继续成功。否则它将继续失败。这种缓存持续——好吧,我们只需要猜测。

希望这可以帮助。是时候再次提高生产力了……

于 2012-06-19T22:28:34.207 回答