首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Rails koala在长时间调用FB图API后“错误不支持get请求”

Rails koala在长时间调用FB图API后“错误不支持get请求”
EN

Stack Overflow用户
提问于 2012-12-05 18:18:45
回答 1查看 1.1K关注 0票数 1

经过长时间的任务(超过600次对Facebook的调用,任务可能更多),我的应用程序将返回500个内部服务器错误,说明如下:

代码语言:javascript
运行
复制
Koala::Facebook::APIError (GraphMethodException: Unsupported get request.) 

我所做的是这样的:

代码语言:javascript
运行
复制
@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放在一个新的线程中,但是没有什么变化。

注意:当我对较少的用户做同样的操作时,一切都很好。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-12-05 22:21:02

hellvinz怎么说是facebook的一个bug。

我已经找到了一种解决办法,这似乎是可行的:

改变这个

代码语言:javascript
运行
复制
graph = @FBGraph.get_object(user.fb_user_id)

到这个

代码语言:javascript
运行
复制
graph = @FBGraph.get_object("#{user.fb_user_id}?fields=id,name,username,picture,link")

显式地声明字段似乎解决了问题。

如果这还不够,还有两个技巧可以解决这个问题:

  1. 在延迟后(例如,一小时后)再次调用,并且只调用不完整的请求。
  2. 创建多个fb应用程序ID和帐户,将请求与帐户区分开来
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13729802

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档