2

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

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

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

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

4

1 回答 1

3

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

如何解决它:使用delayed_job gem来防止在页面加载之前发生你的post call,这使得facebook 可以正确地抓取你的metatags。

例如:

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
于 2012-07-19T22:42:34.450 回答