Rails的长期的任务后考拉“的错误不支持GET请求” - 在调用FB图形API(Rails ko

2019-10-17 11:32发布

经过长期的任务(14S和可以更拥有超过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的操作和失败。 而数据不保存在数据库中。

作为建议这篇文章我已经放在@FBGraph = Koala::Facebook::API.new在一个新的线程,但没有任何变化。

注:当我做同样的操作以较少的用户,都被工作良好。

Answer 1:

如何hellvinz说是Facebook的错误。

我已经找到了解决方法,现在看来,工作原理:

改变这种

graph = @FBGraph.get_object(user.fb_user_id)

graph = @FBGraph.get_object("#{user.fb_user_id}?fields=id,name,username,picture,link")

明确声明领域似乎解决问题。

如果这是不够的有2个,可以解决这个问题更多的花样:

  1. (一小时后为例)的时间延迟后再次呼叫,并呼吁只有残缺的请求
  2. 创建多个FB应用ID和区分账户与账户的请求


文章来源: Rails koala “error unsupported get request” after long task - calling FB graph API