簡體   English   中英

如何在Google相冊API中使用可選參數?

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM