Получить данные со всех страниц в Youtube Data Api - PullRequest
0 голосов
/ 03 октября 2018

Я работаю над заполнением базы данных на Youtube Data Api V3.Все идет хорошо, пока я не попытаюсь получить данные со всех страниц, которые используют «nextPageToken».

Вот мой код,

class YoutubeSeeder extends Seeder
{
/**
 * Run the database seeds.
 *
 * @return void
 */
public function run()
{
    // Playlist 1
    $client = new Client();
    $res1 = $client->request('GET', 'https://www.googleapis.com/youtube/v3/playlistItems?part=snippet&maxResults=50&playlistId={PLAYLIST_ID}&key={API_KEY}');
    $result = json_decode($res1->getBody(),true); // Nak return api data dalam bentuk JSON
    $datas = $result['items'];

    // Playlist 2
    $client2 = new Client();
    $res2 = $client2->request('GET', 'https://www.googleapis.com/youtube/v3/playlistItems?part=snippet&maxResults=50&playlistId={PLAYLIST_ID}&key={API_KEY}');
    $result2 = json_decode($res2->getBody(),true); // Nak return api data dalam bentuk JSON
    $datas2 = $result2['items'];

    foreach (array_merge($datas, $datas2) as $data) {

    $client = new Client();
    $res3 = $client->request('GET', 'https://www.googleapis.com/youtube/v3/videos?fields=items(id,snippet(publishedAt,title,description,thumbnails(medium)),contentDetails(duration),statistics(viewCount))&part=snippet%2CcontentDetails%2Cstatistics&key={API_KEY}&id='.$data['snippet']['resourceId']['videoId']);
    $result = json_decode($res3->getBody(),true); // Nak return api data dalam bentuk JSON
    $datasdetails = $result['items'];

    foreach ($datasdetails as $datadetails) {

    Youtube::updateOrCreate(
      [
        'video_id' => $data['snippet']['resourceId']['videoId'],
      ],
      [
      'title' => $data['snippet']['title'],
      'date_published' => $data['snippet']['publishedAt'],
      'thumbnails' => $data['snippet']['thumbnails']['medium']['url'],
      'description' => $data['snippet']['description'],
      'duration' => $datadetails['contentDetails']['duration'],
      'views' => $datadetails['statistics']['viewCount'],
      'playlist' => $data['snippet']['playlistId'],
      'tags' => $data['snippet']['resourceId']['videoId'],
    ]
  );
  }
}
}
}

На основе моего кода показано, что я пытаюсь получить данные видео и импортировать их в MySQL DB и работает хорошо.Но это только получить данные с первой страницы.Как получить данные со всех страниц, используя «nextPageToken» всего за одно семя?

Я пробовал много способов, и это не дает мне никаких решений.

...