2011-09-16 49 views
0

在這個算法中,我循環瀏覽每個朋友找到他們的位置,但這是非常低效......對於100個朋友,這個腳本需要2分鐘...任何人都可以提出一個更有效的解決方案獲取Facebook朋友的位置是耗時的

@friends[1..100].each do |f| # 'f' contains basic friend info (name, uid) 
    friend = get_friend(f['id']) # 'friend' gets data for each friend 
    if friend.has_key?('location') 
    @friends_locations[friend['name']] = friend['location']['name'] 
    end 
    end 

進出口使用考拉API和Ruby on Rails ...謝謝!

回答

1

嘗試FQL代替ü可以查詢/郵寄查詢它throught REST API太 查詢會如此ething像

選擇......從用戶那裏藏在(從朋友選擇UID2其中UID1 =我( ))

+0

FQL是否被棄用? – hagope

+2

我用你的建議將它縮短到了30秒,謝謝你:@friends [1..100]。每個都做| f | p @ fb_api.fql_query(「select name,current_location from user where uid =#{f ['id']}」) 結束 – hagope

1

您可以使用Batch Requests一次發送20個查詢。但是,FQL可能是一種更好的方法,我沒有聽說它被棄用。

+0

感謝您的建議虐待檢查出來... – hagope