【问题标题】:Facebook Open Graph ScrapingFacebook 开放图抓取
【发布时间】:2012-05-19 15:36:47
【问题描述】:

我最近在我的网络应用程序上启用了 Facebook Open Graph 的东西(某某刚刚在这里和那里阅读了这个和那个)。现在,当用户发布内容时,我将请求发布到 Facebook,作为控制器中页面加载的一部分。问题是我收到以下错误:

HTTP 500:响应正文:{"error":{"type":"Exception","message":"Could 不从 URL 检索数据。"}}

我的第一个想法是加载页面的打开请求阻止了任何 FB 抓取 OG 信息,因为似乎在缓存后我不再收到此错误。

这可能吗?如果是这样,最好的解决方法是什么?

【问题讨论】:

  • 可能会出现许多不同的问题,因此发布您正在测试的 URL 可能会有所帮助。此外,您可以使用Facebook Open Graph Debugger 强制重新刮擦。这可能会为您提供一些有关错误的信息,并且至少您可以监控来自facebookexternalhit 的请求的访问日志,以验证您的对象是否正在被缓存。

标签: ruby-on-rails ruby facebook facebook-opengraph


【解决方案1】:

为什么会这样: 我今天遇到了同样的问题,这是因为您的 Koala 脚本(假设您使用的是 koala - 如果没有,您应该尝试一下,因为它很棒)在您的 URL 启动之前将其请求发送到 Facebook。这意味着当 Facebook 注册帖子时,它会到达您指定的 URL 以获取元标记。不幸的是,页面本身还没有加载,给它一个 500 错误

如何解决: 使用delayed_job gem 防止在页面加载之前发生您的帖子调用,这允许 facebook 正确抓取您的元标记。

例如:

def post_to_facebook([ACCESS_TOKEN])
  graph = Koala::Facebook::API.new([ACCESS TOKEN])
  graph.put_connections("me", "[APP NAMESPACE]:[ACTION]", :[OBJECT TYPE] => [OBJECT_URL])
end
handle_asynchronously :post_to_facebook

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-12-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-03-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多