经过长时间的任务(超过600次对Facebook的调用,任务可能更多),我的应用程序将返回500个内部服务器错误,说明如下:
Koala::Facebook::APIError (GraphMethodException: Unsupported get request.)
我所做的是这样的:
@FBGraph = Koala::Facebook::API.new
tud = MyUsers.all
tud.each do |user|
graph = @FBGraph.get_object(user.fb_user_id)
picture = @FBGraph.get_picture(user.fb_user_id)
thisTud = MyUsers.find(user.id)
thisTud.name = graph["name"]
thisTud.url = graph["link"]
thisTud.url_pic = picture
if thisTud.save
puts "Saved!"
else
puts "Error"
end
end
我(在终端上)接收所有的"Saved!"
,但是在检索数据之后,它会自动执行mysql操作并失败。并且数据没有保存在DB上。
正如this post中所建议的那样,我已经将@FBGraph = Koala::Facebook::API.new
放在一个新的线程中,但是没有什么变化。
注意:当我对较少的用户做同样的操作时,一切都很好。
发布于 2012-12-05 22:21:02
hellvinz怎么说是facebook的一个bug。
我已经找到了一种解决办法,这似乎是可行的:
改变这个
graph = @FBGraph.get_object(user.fb_user_id)
到这个
graph = @FBGraph.get_object("#{user.fb_user_id}?fields=id,name,username,picture,link")
显式地声明字段似乎解决了问题。
如果这还不够,还有两个技巧可以解决这个问题:
https://stackoverflow.com/questions/13729802
复制相似问题