php
  • facebook
  • facebook-graph-api
  • 2012-07-16 25 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 सेकंड भी मिनट लग गए।फेसबुक एफक्यूएल - बहुत धीमी

    यह बहुत धीमी क्यों है? क्या इस अनुरोध में कोई गलती है?

    +0

    यदि आप 2000+ मित्रों के लिए क्वेरी करने का प्रयास करते हैं और खुद को देखते हैं तो क्या होगा? हर कोई – zerkms

    +0

    झूठ बोलता है बस मैंने पोस्ट करने के बाद कोशिश की :) यह धीमा है। मैंने स्क्रिप्ट के निष्पादन समय को विभिन्न स्तर पर चेक किया। फेसबुक प्राप्त करने में फेसबुक के साथ लंबा समय लगता है? क्या सर्वर का नेटवर्किंग या कर्ल धीमा हो सकता है? तहट मामले में इसे कैसे जांचें? – Kamini

    +1

    'उपयोगकर्ता से चुनें जहां से (...) '- इस भाग को कोई समझ नहीं आता है। पूरे क्वेरी के लिए कम किया जा सकता 'दोस्त से uid2 का चयन करें जहां uid1 मुझे() =' – zerkms

    उत्तर

    4

    ठीक है, पहली बात यह है - जब तक आप uid द्वारा उपयोगकर्ताओं की छंटनी और केवल uid उसके बाद चयन के रूप में - बाहरी क्वेरी बेमानी लग रहा है। तो अंतिम क्वेरी

    SELECT uid2 FROM friend WHERE uid1=me() 
    

    दूसरी बात को कम किया जा सकता है: यह FQL प्रश्नों, नहीं file_get_contents प्रदर्शन करने के लिए थोड़ा और अमेरिकन प्लान php एसडीके उपयोग करने के लिए उपयोगी होता है, जैसे:

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

    (से लिया https://stackoverflow.com/a/7827550/251311)

    1

    यह धीमी अधिक डेटा एकत्र किया जा रहा है बस क्योंकि वहाँ है। 2000 + मित्र काफी किसी एक क्वेरी के लिए एक बहुत है ...

    कुछ उपयोगी जानकारी यहां पाया जा सकता - https://developers.facebook.com/live_status

    मंच (वास्तव में पता करने के लिए उपयोगी) की लाइव स्थिति के अलावा, वहाँ भी औसत एपीआई प्रतिक्रिया समय और API त्रुटि गिनती प्रदर्शित दो रेखांकन है। यदि आप बेहद धीमे अनुरोधों को देख रहे हैं, तो उस लिंक पर जाएं ताकि यह देखने के लिए कि शायद यह एक सिस्टम व्यापक मुद्दा है या नहीं।

    0

    मेरे विचार FQL में अच्छा है, लेकिन जब नियमित ग्राफ एपीआई अपनी आवश्यकताओं को पूरा नहीं कर सकते किया जाना चाहिए। दिए गए मामले में यदि केवल दोस्तों की आईडी प्राप्त करने की आवश्यकता है तो आप बस निम्नलिखित कोड का उपयोग कर सकते हैं।

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

    क्या यह सच है? क्या यह fql से तेज तरीका है? – Kamini

    +0

    @ कामिनी: मुझे यकीन है कि वे प्रदर्शन से बहुत करीब हैं। उपयोग किया जाने वाला भंडारण वही है, लेकिन केवल 2 अलग-अलग इंटरफेस – zerkms

    +0

    एफक्यूएल के साथ अपने अनुभव में आप अपने आप को प्रोसेसिंग करना समाप्त कर देते हैं। लेकिन ग्राफ एपीआई आपको संसाधित परिणाम दे सकता है। मैं गलत हो सकता हूं लेकिन यह मेरा अनुभव एफबी एपीआई और एफक्यूएल के साथ है। –

    संबंधित मुद्दे