[英]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.