1

긴 작업 (14 초 및 600 개 이상의 Facebook 호출로 더 많은 시간이 소요될 수 있음)이 발생하면 내 앱이 다음 설명과 함께 500 개의 내부 서버 오류를 반환합니다.Rails 코알라는 "오류 지원되지 않음 요청 받기"- FB 그래프 API 호출

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을 새 스레드에 배치했지만 아무 것도 변경되지 않습니다.

참고 : 적은 사용자로 동일한 작업을 수행 할 때 일 때 모두 효과가있었습니다.

+1

버그가 있습니다. http://developers.facebook.com/bugs/160155304123891 사용자 수가 적 으면 그 오류가 발생할 가능성이 낮아집니다. – hellvinz

+0

감사합니다. 한편 해결 방법을 찾았습니다. – damoiser

답변

2

hellvinz는 페이스 북의 버그라고 말합니다. 이

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

graph = @FBGraph.get_object(user.fb_user_id) 

가 명시 적으로 필드를 선언하면 해당 문제를 해결할 것

변화 :

나는 지금 작동하는 것 같습니다에 대한 해결 방법을 찾을 수 있습니다.

그리고

이 충분하지 않은 문제를 해결할 수 있습니다이 더 트릭이있는 경우 : (한 시간 후, 예를 들면) 시간 지연 후 다시 호출

  1. , 그리고
  2. 불완전에만 요청을 호출 여러 fb 앱 ID 및 계정을 사용하여 요청을 차별화하는 계정
+0

이것은 페이스 북의 버그입니다. API보다 많은 호출을 수행했다면 다른 오류 메시지가 나타납니다. – Snowcrash