1

長いタスク(14秒でFacebookへの呼び出しが600を超える場合はそれ以上になる可能性があります)の後、私のアプリは次の説明を含む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に保存されません。

この投稿で提案されているように、私は@FBGraph = Koala::Facebook::API.new新しいスレッドに配置しましたが、何も変更されていません。

注:より少ないユーザーで同じ操作を実行すると、すべてが正常に機能していました。

4

1 に答える 1

2

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. 時間遅延後(たとえば1時間後)に再度呼び出し、不完全な要求のみを呼び出す
  2. 複数のfbアプリIDとアカウントを作成して、アカウントでリクエストを区別します
于 2012-12-05T22:21:02.853 に答える