2012-12-18 18 views
5

का उपयोग करने का कोई बेहतर तरीका है Itube php Zend API लाइब्रेरी का उपयोग कर रहा हूं।यूट्यूब PHP API

इस एपीआई में पहले मैं अस्थायी/पुष्टिकरण कोड प्राप्त करने के लिए अनुरोध भेजता हूं।

फिर एक्सेस टोकन प्राप्त करने का अनुरोध।

इस के बाद मैं उपयोगकर्ता जानकारी लाने के लिए चाहते हैं तो एक और अनुरोध

https://gdata.youtube.com/feeds/api/users/default 
वर्तमान उपयोगकर्ता के लिए

को यह अंततः userId साथ यूआरएल रिटर्न

तो मुझे लगता है कि यूआरएल है जहाँ से उपयोगकर्ता जानकारी प्राप्त करता है एक्सएमएल फॉर्म में।

मैं इन इतने सारे अनुरोधों से तंग आ गया हूं कि इसमें अधिक समय लगता है।

curl/ajax अनुरोधों की संख्या को कम करके इन चीज़ों को प्राप्त करने का कोई और तरीका है।

+0

क्या समस्या है कि आपको एकाधिक उपयोगकर्ताओं से पूछताछ करने की आवश्यकता है और इसमें बहुत अधिक समय लगता है? – Ranty

+0

हाँ मैंने प्रश्न में इसका उल्लेख किया है –

उत्तर

1

आप समानांतर में विभिन्न उपयोगकर्ताओं के लिए अनुरोध करने के लिए curl_multi_* का उपयोग कर सकते हैं। यह प्रत्येक उपयोगकर्ता के लिए प्रक्रिया को तेज़ी से नहीं बढ़ाएगा, लेकिन चूंकि आप समांतर में 10-30 या अधिक अनुरोध कर सकते हैं, यह पूरे सौदे को तेज करेगा।

एकमात्र जटिलता यह है कि आपको प्रत्येक अनुरोध के लिए अलग कुकी फ़ाइल की आवश्यकता होगी। अपना प्रारंभ करने के लिए नमूना कोड यहां दिया गया है:

$chs = array(); 
$cmh = curl_multi_init(); 
for ($t = 0; $t < $tc; $t++) 
{ 
    $chs[$t] = curl_init(); 
    // set $chs[$t] options 
    curl_multi_add_handle($cmh, $chs[$t]); 
} 

$running=null; 
do { 
    curl_multi_exec($cmh, $running); 
} while ($running > 0); 

for ($t = 0; $t < $tc; $t++) 
{ 
    $contents[$t] = curl_multi_getcontent($chs[$t]); 
    // work with $contencts[$t] 
    curl_multi_remove_handle($cmh, $chs[$t]); 
    curl_close($chs[$t]); 
} 
curl_multi_close($cmh);