Ver Mensaje Individual
  #1 (permalink)  
Antiguo 28/07/2013, 20:13
Avatar de raid_
raid_
 
Fecha de Ingreso: diciembre-2010
Mensajes: 132
Antigüedad: 13 años, 4 meses
Puntos: 12
paginacion videos youtube

Buenas
Estoy utilizando la api v3 de youtube para mostar en una web todos los videos de un canal, el problema es que solo te muestra 50 videos y te da un valor para la pagina siguiente, pero no te deja seleccionar pagina. asi que solo te deja mostrar 50 y un enlace para los proximos 50, no puedes ir al 200 por ejemplo.

Este es una parte del codigo que estoy utilizando
Código PHP:
Ver original
  1. $api_json_lista1 = file_get_contents("https://www.googleapis.com/youtube/v3/playlists?channelId=xxxx&key=xxx&maxResults=50&part=snippet&fields=items(snippet(title)),items(id),pageInfo(totalResults),nextPageToken");
  2.                                 $json_decode_lista1 = json_decode($api_json_lista1);
  3.                                 $json_decode_lista->nextPageToken;
  4.                                 $lista1 = array();
  5.                                 foreach($json_decode_lista1->items as $child_lista1){
  6.                                     $lista1[] = $child_lista1->id;
  7.                                     $titulo_lista1 = $child_lista1->snippet->title;
  8.                                     $id_lista1 = $child_lista1->id;
  9.                                    
  10.                                     echo '<h3 class="portfolioFilter_tab">';
  11.                                     echo '<a href="#" data-filter=".'. $id_lista1 .'"  class="'. $id_lista1 .'">'. $titulo_lista1 .'</a>';
  12.                                     echo '</h3>';
  13.  
  14.                                 }

Pero con este codigo solo me muestra 50 resultado, pero me devuelve un valor para la pagina siguiente

Código PHP:
Ver original
  1. $json_decode_lista->nextPageToken;
  2.  
  3. // "nextPageToken": "CAQQAA",
  4. // CAQQAA es el id de la pagina siguiente, y si añado ese valor a la url me devuelve los //50 videos siguientes
  5. file_get_contents("https://www.googleapis.com/youtube/v3/playlists?channelId=xxxx&key=xxx&maxResults=50&part=snippet&fields=items(snippet(title)),items(id),pageInfo(totalResults),nextPageToken&pageToken=CAEQAA

ahora mi pregunta, ¿puedo crear un foreach y utilizar de parametro "nextPageToken": "CAQQAA"?
pongo un ejemplo para que se me entienda mejor


Código PHP:
Ver original
  1. foreach($pagina as $child_lista){ // $pagina tendria que coger el valor de $pagina = $json_decode_lista->nextPageToken;
  2.                                 $api_json_lista1 = file_get_contents("https://www.googleapis.com/youtube/v3/playlists?channelId=xxxx&key=xxx&maxResults=50&part=snippet&fields=items(snippet(title)),items(id),pageInfo(totalResults),nextPageToken&pageToken={$child_lista}");
  3.                                 $json_decode_lista1 = json_decode($api_json_lista1);
  4.                                $pagina = $json_decode_lista->nextPageToken; // este valor se tendria que pasar de nuevo por el foreach
  5.                                 $lista1 = array();
  6.                                 foreach($json_decode_lista1->items as $child_lista1){ ...................
  7. }
  8. }

este ultimo codigo es para que se me entienda lo que quiero, le faltal alguna cosas
pero la idea es, que al ejecutarse, muestre los primeros 50 resultados, si existe una pagina siguiente, tome ese valor y vuelva a ejecutar el foreach, pero con ese nuevo valor, hasta que liste completamente todos los videos.

gracias y espero que se me entienda.

Última edición por raid_; 28/07/2013 a las 20:31