2011-09-16 7 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

は代わりにuは、クエリがそう

ようethingされるだろうあまりにも REST APIをthrought郵便で/クエリを照会することができFQLを試してみてください(中に隠したユーザーから...選択(UID1が私を=友人からUID2を選択))

+0

FQLは廃止予定ですか? – hagope

+2

私はあなたの提案を使って30秒にカットしました、ありがとう:@friends [1..100] .each do | f | p @ fb_api.fql_query( "uid =#{f ['id']}"というユーザからの現在の場所を選択してください) end – hagope

1

Batch Requestsを使用して一度に20個のクエリを送信できます。しかし、FQLはおそらくより良いアプローチであり、私はそれが推奨されていないと聞いていない。

+0

提案のおかげでよろしくお願いします... – hagope

関連する問題