【问题标题】:How to force Facebook Linter to rescrape page with cookies enabled?如何强制 Facebook Linter 在启用 cookie 的情况下重新抓取页面?
【发布时间】:2012-07-15 06:02:01
【问题描述】:

我最近在使用 Facebook 的 Like 按钮时遇到了很多问题。具体来说,当用户点击 Like 按钮时,评论对话框不会出现,而是会出现一个错误链接,提示“无法访问页面”。

当 Facebook Linter 抓取这样的页面时,它会得到一个 302,它将 linter 重定向到附加了 jsessionid=xxx 的 URL。我假设 Facebook 正确处理 302,并决定将 Tomcat 配置为将 jsessionid 存储为 cookie。这是一个例子:http://galecsy.com:88/lrm/ms/oid/75009

我还假设 Facebook Linter 可以处理 cookie,因为FB.init() 有一个 cookies:true 参数,如下所述:http://developers.facebook.com/docs/reference/javascript/

但是,当 linter 遵循 302 重定向时,它似乎没有保留 jsessionid cookie。那么,有没有办法强制 linter 尊重 cookie?如果不是,JS SDK 上的这个cookies:true 参数是干什么用的?

【问题讨论】:

    标签: facebook facebook-like session-cookies facebook-likebox http-redirect


    【解决方案1】:

    JS SDK 上的 cookies:true 参数是干什么用的?

    它使 SDK 将有关登录状态的信息存储在 cookie 中,以便在下一个请求(例如 PHP SDK)时在服务器端轻松访问它。

    那么,有没有办法强制 linter 尊重 cookie?

    我不这么认为。

    您应该让您的应用在不需要 cookie 的情况下运行。

    【讨论】:

    • 我的应用可以在不需要 cookie 的情况下运行。但是,如果用户(例如 Facebook lint)没有会话并尝试访问 page1,则应用程序将执行 302 重定向到 page1?jsessionid=xxx 最近开始抛出 FB Like 按钮,如此错误 @987654321 中所述@。我只是想找到解决此错误的方法。
    • 如何向新用户发出 jsessionid 并且不重定向?此外,如果 Facebook 不遵循 302 重定向,你不同意它有问题吗?
    • “如果 Facebook 不遵循 302 重定向,你不同意它有问题吗?” – 它确实 遵循它们。但从它的外观来看,在您的页面上,整个事情都以循环重定向结束,因为您需要客户端接受 cookie。我认为不需要重定向来发布新的会话 ID。例如 PHP 可以在不重定向的情况下处理这个问题。
    • 抱歉,我原帖中的网站尝试使用 cookie。这是一个不使用 cookie 的网站,并说明了我遇到的原始“无法访问页面”问题 customerelite.com/lrm/ms/oid/595505 请注意,linter 处理得很好。
    • “请注意,linter 处理得很好。” – 并非如此,当我通过调试工具传递该 URL 时,它会显示“URL 重定向太多次。请减少重定向次数。”那是因为它在每个请求上都会重定向到一个带有新会话 ID 的 URL。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-30
    • 1970-01-01
    • 1970-01-01
    • 2012-04-06
    • 2013-04-07
    • 2019-01-19
    相关资源
    最近更新 更多