Поэтому у меня есть функция, которая будет извлекать все записи плейлиста из API Zend Gdata. Теперь я просто пытаюсь добавить 'getNextFeed ()', но V3 использует 'pageToken' для отображения следующих записей. Проблема, с которой я сталкиваюсь, заключается в том, как получить «nextPage» в моем коде и реализовать его. Я знаю, что логика заключается в том, чтобы получить «nextPageToken» и поместить его в цикл, но я не знаю, как это сделать. Извините, я новичок в JSON.
<?php $client = new Google_Client(); $client->setDeveloperKey($DEVELOPER_KEY); $youtube = new Google_YoutubeService($client); try { $searchResponse = $youtube->playlistItems->listPlaylistItems('id,snippet', array( 'playlistId' => $_GET['q'], 'maxResults' => $_GET['maxResults'] )); foreach ($searchResponse['items'] as $searchResult) { $videoId = $searchResult['snippet']['resourceId']['videoId']; $videoTitle = $searchResult['snippet']['title']; $videoThumb = $searchResult['snippet']['thumbnails']['high']['url']; $videoDesc = $searchResult['snippet']['description']; print '<div>'. $videoTitle.'<br/><br/><img src="'. $videoThumb.'" /><br/>'. $videoId.'<br/>'. $videoDesc.'<br/>'. '</div><br/><br/>'; } } catch (Google_ServiceException $e) { return; } catch (Google_Exception $e) { return; } } ?>
okey вчера вечером я пытаюсь решить мою проблему и получил ответ.
вот мой код
<?php function youtube_search($query, $max_results, $next_page_token=''){ $DEVELOPER_KEY = '{DEVELOPER_KEY}'; $client = new Google_Client(); $client->setDeveloperKey($DEVELOPER_KEY); $youtube = new Google_YoutubeService($client); $params = array( 'playlistId'=>$query, 'maxResults'=>$max_results, ); // if next_page_token exist add 'pageToken' to $params if(!empty($next_page_token)){ $params['pageToken'] = $next_page_token; } // than first loop $searchResponse = $youtube->playlistItems->listPlaylistItems('id,snippet,contentDetails', $params); foreach ($searchResponse['items'] as $searchResult) { $videoId = $searchResult['snippet']['resourceId']['videoId']; $videoTitle = $searchResult['snippet']['title']; $videoThumb = $searchResult['snippet']['thumbnails']['high']['url']; $videoDesc = $searchResult['snippet']['description']; print '<div>'. $videoTitle.'<br/><br/><img src="'. $videoThumb.'" /><br/>'. $videoId.'<br/>'. $videoDesc.'<br/>'. '</div><br/><br/>'; } // checking if nextPageToken exist than return our function and // insert $next_page_token with value inside nextPageToken if(isset($searchResponse['nextPageToken'])){ // return to our function and loop again return youtube_search($query, $max_results, $searchResponse['nextPageToken']); } } ?>
и вызовите функцию
youtube_search($_GET['q'],$_GET['maxResults']);
надеюсь, что это поможет кому-то, у кого есть аналогичная проблема.
благодаря!