php
  • facebook
  • facebook-graph-api
  • 2012-07-16 20 views 5 likes 
    5
    $access_token = $facebook->getAccessToken(); 
    $query = "SELECT uid FROM user WHERE uid IN (SELECT uid2 FROM friend WHERE uid1=me())"; 
    $query = urlencode($query); 
    $fql_query_url = 'https://graph.facebook.com/'. 'fql?q='.$query. '&access_token=' . $access_token; 
    $fql_query_result = file_get_contents($fql_query_url); 
    $fql_query_obj = json_decode($fql_query_result, true); 
    

    これはクエリです。私は友人が限られているので、より速く動く。しかし、アプリのユーザーの中には、約2000人以上の友達がいれば、非常に遅いと言うユーザーもいます。彼らは分に30秒かかったと言った。Facebook FQL - 非常に遅い

    なぜ非常に遅いですか?この要求に間違いはありますか?

    +0

    2000+の友人のクエリを実行してあなた自身に会おうとするとどうなりますか?誰もが – zerkms

    +0

    だと私はちょうど私がここに投稿した後にそれを試しました:)それは遅いです。私はスクリプトの実行時間をさまざまなレベルでチェックしました。 Facebookにはデータを取得するのに時間がかかりますか?サーバーのネットワーキングやカールが遅くなる可能性はありますか?それをチェックするには? – Kamini

    +1

    'あなたからのユーザーIDの選択(...) - この部分は意味をなさない。クエリ全体を 'uid2 FROM friend WHERE uid1 = me()'に減らすことができます。 – zerkms

    答えて

    4

    まあ、最初のもの - 限り、あなたはuidによりユーザーをフィルタし、それだけで後uidを選択すると - 外側のクエリが冗長になります。だから、最後のクエリは、第二のもの

    SELECT uid2 FROM friend WHERE uid1=me() 
    

    に削減することができます:file_get_contents、FQLクエリを実行するために、FBのPHP SDKを使用して、もう少し便利ではない、のように:

    から取ら
    $facebook->api("/fql?q={$fql}"); 
    

    https://stackoverflow.com/a/7827550/251311

    1

    収集するデータが増えているため単純に処理が遅くなります。 2000人以上の友達が1つのクエリでかなり多くのことをしています...

    いくつかの役立つ情報は、https://developers.facebook.com/live_statusでご覧になれます。

    (実際に知っておくと便利な)プラットフォームのライブステータス以外に、平均API応答時間とAPIエラー数を表示する2つのグラフもあります。極端に遅いリクエストに気づいている場合は、そのリンクに向かい、おそらくそれがシステム全体の問題であるかどうかを確認してください。

    0

    私の見解ではFQLは良いですが、通常のグラフAPIがあなたの要求を満たすことができない場合に使用してください。この場合、友人のIDを取得する必要がある場合は、次のコードを使用するだけです。

    FB.api("me/friends?fields=id&limit=3000", function(resp){//process data}); 
    
    +0

    本当ですか?それはfqlよりも速い方法ですか? – Kamini

    +0

    @Kamini:パフォーマンスにとても近いと確信しています。使用されるストレージは同じですが、2つの異なるインターフェイスだけがあります – zerkms

    +0

    FQLでの私の経験では、自分で処理することになります。しかし、グラフAPIは処理結果を与えることができます。私は間違っているかもしれませんが、それはFB APIとFQLでの私の経験です。 –

    関連する問題