2011-06-04 43 views
0

就在今天,我发现我的fbgraph实现已经开始返回一个导致内部服务器错误的400错误请求错误。Ruby on Rails - 检查控制器中的HTTP错误

控制器看起来像:

def fb 
    fbclient = FBGraph::Client.new(:client_id => 'ID', :secret_id => 'SECRET') 
    @fbname = fbclient.selection.user('129220333799040').feed.info!['data'][0].from.name 
    @fbmessage = fbclient.selection.user('129220333799040').feed.info!['data'][0].message 
end 

我如何调用我的看法是@fbname我已经收到了200个状态之前检查?

谢谢。

更新:以下德文M的建议,我已经关掉了上述行动,

def fb 
     fbclient = FBGraph::Client.new(:client_id => 'ID', :secret_id => 'SECRET') 
     begin 
      @fbname = fbclient.selection.user('129220333799040').feed.info!['data'][0].from.name 
      @fbmessage = fbclient.selection.user('129220333799040').feed.info!['data'][0].message 
     rescue 
      @fbname = "Facebook Account" 
      @fbmessage = "Facebook's API is a nightmare" 
     end 
    end 
+1

我想你应该先检查是否有用户权限(fbclient.selection.user('129220333799040'))你的调用中有太多的链可能会导致一个零或400错误的请求。尝试一步一步做,并添加适当的检查,当你找到哪个返回400 – corroded 2011-06-04 04:12:05

+0

@腐蚀 - 谢谢。看起来api可能已经改变了。我仍然可以访问该用户,但试图访问该用户的Feed会导致400错误 – aperture 2011-06-04 04:23:31

回答

1

我认为你应该写一些这方面的测试中,它很难与API的Facebook的噩梦工作。 虽然如果你想抓住这个错误,尝试使用这种方式,你可以捕捉到具体的错误,并在救援部分采取一些行动。

begin 
rescue 
end 

如果你想让我看看文档,看看你应该让我知道。

+0

啊,谢谢,这是有效的。我试图使用rescue_from,但那是失败的。我不知道为什么突然出现错误。它最近在2天前工作,而另一个应用程序可以使用非常类似的代码,现在没有错误...我将使用我所用的编辑器编辑我的问题 – aperture 2011-06-04 04:50:24

+0

没问题,Facebook很难编程。 – 2011-06-04 04:52:17