2

我想獲得用戶朋友簽入,我使用omniauth和考拉寶石。與Facebook圖形API和rails的朋友checkins - APIError

當用戶會保存這種方法點擊:

def add_friends 
friends_data = facebook.get_connections("me", "friends", :fields => "id, name, link, picture, gender, checkins") 
    friends_data.map do |h| 
     friend = Friend.new 
     friend.uid = h["id"] 
     friend.name = h["name"] 
     friend.image = h["picture"] 
     friend.gender = h["gender"] 
     friend.urls = h["link"] 
     friend.user_id = self.id 
     friend.save! 

     if (!h["checkins"].blank?) 
      checkin = Checkin.new 
      checkin.checkin_id = h["id"] 
      checkin.user_id = h["checkins"]["data"]["from"]["id"] 
      checkin.user_name = h["checkins"]["data"]["from"]["name"] 
      checkin.tags = h["checkins"]["tags"]["data"]["name"] 
      checkin.place_id = h["checkins"]["place"]["id"] 
      checkin.place_name = h["checkins"]["place"]["name"] 
      checkin.message = h["checkins"]["message"] 
      checkin.created_time = h["checkins"]["created_time"] 
      checkin.friend_id = friend.id 
      checkin.save! 
      end 
     end 
     end 

但我得到這個錯誤:

Koala::Facebook::APIError: HTTP 500: Response body: {"error_code":1,"error_msg":"An unknown error occurred"} 

我真的不知道這意味着什麼,任何想法?有誰知道如何定義與考拉寶石簽入限制? 我試過這樣的:

u.facebook.get_connections("me","friends", :fields => "checkins.limit(2)") 

但我得到了同樣的錯誤!

+0

打開您的控制檯並從ID字段開始,在驗證第一個作品後指定另一個。我最初的假設是,朋友的簽名根本無法提供給您,但我對API的確定程度還不夠熟悉。 –

+0

@DigitalMerc-我在發佈這個之前試過,並且得到了同樣的錯誤。我擁有正確的權限。 – SHUMAcupcake

+0

它在哪個領域開始發生?還是與ID字段本身? –

回答

0

在字段中,您正在請求關於朋友的信息,但'checkins'不是配置文件字段,它完全是完全不同的連接。

那你必須做的是遍歷所有好友的ID,並得到簽到每個:

friend_checkins = [] 
friend_ids = u.facebook.get_connections("me","friends", :fields => "id") 
friend_ids.each do |friend_id| 
    friend_checkins << u.facebook.get_connections(friend_id,"checkins") 
end 

而且,這樣做的時候,這將是一個偉大的時間來考慮batch requests with Koala,因爲你可能在此處進行大量的API調用..

相關問題