2012-12-18 12 views
5

Korzystam z biblioteki API Zend API php youtube.jest lepszy sposób korzystania z PHP API Youtube

W tym interfejsie API najpierw wysyłam żądanie uzyskania kodu tymczasowego/potwierdzającego.

Następnie żądanie uzyskania tokena dostępu.

Po tym chcę, aby pobrać informacje o użytkowniku następnie kolejna prośba czyni do

https://gdata.youtube.com/feeds/api/users/default 

dla bieżącego użytkownika Zwraca url userid

wreszcie uzyskać informacje o użytkownikach z tego adresu URL, który jest w postaci xml.

Mam dość tych wielu próśb, które również zabierają dużo czasu.

Czy istnieje inny sposób, aby uzyskać te rzeczy, zmniejszając liczbę żądań curl/ajax.

+0

Czy problem dotyczy kilku użytkowników i trwa zbyt długo? – Ranty

+0

Tak, o tym wspomniałem –

Odpowiedz

1

Można użyć curl_multi_* zrobić wnioski dla różnych użytkowników w równolegle. Nie przyspieszy to procesu dla każdego użytkownika, ale ponieważ możesz wykonywać jednocześnie 10-30 lub więcej żądań, przyspieszy to całą transakcję.

Jedyną komplikacją jest to, że do każdego żądania potrzebny będzie oddzielny plik cookie. Oto przykładowy kod, aby rozpocząć:

$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); 
Powiązane problemy