Я не уверен на 100% в этом , но, похоже, iterateAllElements
буквально перебирает все элементы, доступные в учетной записи, игнорируя указанный вами размер страницы (даже размер страницы по умолчанию), запрашивая все из API без каких-либо границ.
Вы можете перебрать возвращенные страницы, заменив iterateAllElements
на iteratePages
, но, похоже, он не работает должным образом без идентификатора альбома, API возвращает неправильный размер страницы, как в примере ниже:
$optParams = array(
'pageSize' => 5 // Changed
);
$response = $photosLibraryClient->searchMediaItems($optParams); // Changed the method
foreach ($response->iteratePages() as $key => $page) {
echo "Page #{$key}<br>";
foreach ($page as $item) {
$id = $item->getId();
$description = $item->getDescription();
$mimeType = $item->getMimeType();
$productUrl = $item->getProductUrl();
$filename = $item->getFilename();
echo '<br>';
echo $filename;
}
}
если поиск или список были вызваны без предоставления albumId
, приведенный выше пример вернет что-то вроде этого:
[
[{...},{...},{...}],
[{...},{...},{...},{...},{...}],
[{...}],
[],
[{...},{...},{...},{...},{...}],
[]
]
Если вы найдете хорошее решение для этой конкретной проблемы, пожалуйста, дайте мне знать.
Ps .: Их поведение API и документация очень странные и запутанные.