[英]How to use optional parameters in Google Photos API?
我正在使用Google Photos API處理php項目。 我有一個問題,如果我傳遞像pageSize這樣的可選參數,它仍然無法獲取所有圖像。
$optParams = array(
'pageSize' => 1,
);
$response = $photosLibraryClient->listMediaItems($optParams);
foreach ($response->iterateAllElements() as $item) {
$id = $item->getId();
$description = $item->getDescription();
$mimeType = $item->getMimeType();
$productUrl = $item->getProductUrl();
$filename = $item->getFilename();
echo '<br>';
echo $filename;
}
我不是100%肯定這一點 ,但似乎iterateAllElements
逐字地迭代帳戶中可用的所有元素,忽略指定的pageSize(甚至是默認的pageSize),通過從API請求所有內容而沒有任何邊界。
您可以使用iteratePages
迭代返回的頁面替換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行為和它的文檔非常奇怪和令人困惑。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.