列出及擷取媒體項目

使用者使用 Picker API 選取媒體項目後,您就可以擷取相關資訊並存取內容。本指南將概略說明列出及擷取媒體項目的程序。

事前準備

  • 瞭解流程:請參閱「使用 Picker API 入門」,瞭解整個相片選擇流程。
  • 完成媒體項目選取作業:確認使用者已成功在工作階段中選取媒體項目。詳情請參閱工作階段指南
  • 查看所需授權範圍:使用工作階段時,必須具備 photospicker.mediaitems.readonly 範圍。如要進一步瞭解範圍,請參閱「授權範圍」。

列出所選媒體項目

  1. 使用 mediaItems.list 端點:向 https://photospicker.googleapis.com/v1/mediaItems 提出 GET 要求,並提供 sessionId 做為查詢參數。

  2. 處理分頁 (如有需要):

    如果使用者選取大量項目,回應可能會分頁顯示。請在回應中使用 nextPageToken,擷取後續的結果頁面。

  3. 處理媒體項目:回應會包含 PickedMediaItem 物件的陣列,每個物件代表所選的媒體項目。這些物件包含以下重要詳細資料:

    • id:媒體項目的專屬 ID。
    • baseUrl:您可以使用這個基礎網址建立網址,以便在不同解析度下存取媒體項目的內容。
    • mimeType:媒體項目的 MIME 類型 (例如 image/jpeg、video/mp4)。

擷取所選媒體項目

請確認您有有效的 OAuth 2.0 存取權杖,且該權杖具有 https://www.googleapis.com/auth/photospicker.mediaitems.readonly 範圍,以便授權要求。

  • 建構內容網址:使用 PickedMediaItem 物件的 baseUrl。請將解析度或檔案格式附加至 baseUrl。詳情請參閱「基本網址」一節

  • 擷取內容:對媒體項目的基本網址提出 GET 要求。回應會包含媒體項目 (圖片或影片) 的位元組。您可以使用多種不同的 baseURL 選項

基礎網址

Google 相簿 API 中的基本網址可提供媒體項目的原始位元組存取權,讓應用程式下載或顯示這些項目。列出專輯 (Library API) 或存取媒體項目 (Library 和 Picker API) 時,這些網址會包含在回應中。請注意,基礎網址需要額外參數才能正常運作。

Picker API:

所有 PickedMediaItem.mediaFile 物件都包含 baseUrl

基本網址會保持有效 60 分鐘,但如果使用者透過 Google 帳戶設定撤銷應用程式的權限,則可能會提早失效。

Library API:

基礎網址會在 60 分鐘內保持有效

各種基礎網址如下:

  • baseUrl:直接存取相片、影片縮圖或下載影片位元組。
  • coverPhotoBaseUrl:直接存取相簿的封面相片。
  • profilePictureBaseUrl:直接存取 mediaItem 擁有者的個人資料相片。

圖片基準網址

以下是可搭配圖片基本網址使用的選項清單:

參數
wh

說明

寬度 w 和高度 h 參數。

如要存取圖片媒體項目 (例如相片或影片縮圖),您必須指定要在應用程式中顯示的尺寸 (這樣圖片就能縮放至這些尺寸,同時保留顯示比例)。如要這麼做,請將基準網址與所需尺寸連結,如範例所示。

例如:

base-url=wmax-width-hmax-height

以下範例說明如何顯示寬度不超過 2048 像素、高度不超過 1024 像素的媒體項目:

https://lh3.googleusercontent.com/p/AF....VnnY=w2048-h1024
c

說明

裁剪,c 參數。

如要將圖片裁剪為指定的確切寬度和高度,請將基準網址與選用的 -c 參數連結,並加上必要的 wh 參數。

大小 (以像素為單位) 應介於 [1, 16383] 之間。如果圖片的寬度或高度超過要求大小,系統會縮小圖片並裁剪 (保留顯示比例)。

例如:

base-url=wmax-width-hmax-height-c

在這個範例中,應用程式會顯示寬度和高度皆為 256 像素的媒體項目,例如縮圖:

https://lh3.googleusercontent.com/p/AF....VnnY=w256-h256-c
d

說明

下載,d 參數。

如果您想下載圖片,並保留位置中繼資料以外的所有 Exif 中繼資料,請將基準網址與 d 參數連結。

例如:

base-url=d

在這個範例中,應用程式會下載含有所有中繼資料的圖片,但不含位置中繼資料:

https://lh3.googleusercontent.com/p/Az....XabC=d

影片基準網址

以下是可搭配影片基本網址使用的選項清單:

參數
dv

說明

如要存取影片 mediaItem 的位元組,請將 baseUrl 與下載影片 dv 參數連結。

dv 參數會要求原始影片的高品質轉碼版本。這個參數與 wh 參數不相容。

影片下載的基本網址可能需要幾秒鐘的時間才能傳回位元組。

使用這個參數前,請確認媒體項目的 mediaMetadata.status 欄位為 READY。否則,如果媒體項目尚未完成處理,您可能會收到錯誤訊息。

例如:

base-url=dv

以下範例說明如何下載影片的位元組:

https://lh3.googleusercontent.com/p/AF....BsdZ=dv
whcd

說明

如要存取影片縮圖,請使用任何圖片基準網址參數

根據預設,所有影片縮圖都會附加播放按鈕。如要移除這項疊加層,請參閱 -no 參數。

例如:

如需範例,請參閱圖片基本網址表格

no

說明

移除縮圖覆蓋圖片,no 參數。

如果您想擷取影片縮圖,但不顯示播放按鈕的疊加層,請將基本網址與 no 參數連結。

no 參數必須與至少一個 圖片基本網址參數搭配使用。

例如:

base-url=wmax-width-hmax-height-no

以下範例顯示的影片縮圖寬度和高度分別為 1280 像素和 720 像素,且不含播放按鈕疊加:

https://lh3.googleusercontent.com/p/AF....VnnY=w1280-h720-no

動態相片基本網址

動態相片包含相片和影片元素。您可以使用 圖片基本網址影片基本網址中的參數,用於動態相片 baseUrl 要求。

參數
dv

說明

如要擷取動態相片媒體項目的影片元素,請使用 dv 參數,就像從影片基礎網址下載一樣。

whcd

說明

如要擷取動態相片媒體項目的圖片元素,請使用圖片基礎網址的格式。