Multiple Request with Guzzle in Laravel

I've restapi with pagination and I need to combine the result for sitemap.

Json Results

    {
...
"info": {
"playlistId":"PLxxxxx",
"totalResults": 242,
"maxResults": 50,
"nextToken": "CCAAQ"
},
"results": [
{
"id": 1,
"title": "How to make a Cookies",
}
...
]
}

I've trying with below code, but still no luck. lot of duplicate video. I don't know what's wrong with this. I've try use promise too, but the results still duplicated.

            ...

$requests = [];
foreach ($playlists['playlistId'] as $playlistId) {
if (!empty($playlistId)) {
$result = $client->request('GET', route('api.playlist', ['playlistId' => $playlistId]));
$guzzle = \GuzzleHttp\json_decode($result->getBody(), true);
...
$pages = ceil($total_posts / $max_per_page);

for ($i = 0; $i <= $pages; $i++) {
$pageToken = Helper::youtubeToken();

$requests[] = new GuzzleRequest('GET', route('api.playlist', ['playlistId' => $playlistId, 'page' => $pageToken[$i]]));

}
}
}

$responses = Pool::batch($client, $requests, array(
'concurrency' => 1000,
));

foreach ($responses as $response) {
//do something
$respon = \GuzzleHttp\json_decode($response->getBody(), true);

if ($respon['info']['playlistId']) {
$filename = $respon['info']['playlistId'];
$nextToken = $respon['info']['nextToken'];
$sitemap = Sitemap::create();

foreach ($respon['results'] as $hasil) {
$slug = ApiController::make_slug($hasil['title']);
if (!empty($nextToken)) {
$sitemap->add();
...

}

}
$sitemap->writeToFile("$playlistPath/$filename.xml");

}

}

I need to get all of the results list and filtered by playlistId.

Thanks in advance.



from Newest questions tagged laravel-5 - Stack Overflow https://ift.tt/319zgm0
via IFTTT

تعليقات

المشاركات الشائعة من هذه المدونة

I am unable to figure out how to create payment collection request, after a form has been submitted in laravel

laravel, mysql transaction not working after failed one time