Wymagane zakresy autoryzacji
Wyświetlanie treści utworzonych w aplikacji wymaga uprawnienia photoslibrary.readonly.appcreateddata
. Więcej informacji o zakresach znajdziesz w artykule Zakresy autoryzacji.
Omówienie
Interfejs Library API umożliwia wyświetlanie listy elementów multimedialnych utworzonych w aplikacji i dostęp do nich.
Oto niektóre z kluczowych funkcji listowania elementów multimedialnych:
- wyświetlanie elementów multimedialnych z konkretnych albumów utworzonych w aplikacji lub całej biblioteki utworzonej w aplikacji;
Zastosuj filtry (data, kategoria treści, typ multimediów), aby zawęzić wyniki.
Pobieraj obiekty
mediaItem
z podstawowymi informacjami, takimi jak bezpośrednie linki i metadane.
Wyświetlenie zawartości biblioteki i albumu zwraca listę elementów multimedialnych.
Wzbogacenia, które są częścią albumu, nie są uwzględniane. Elementy multimedialne opisują zdjęcie, film lub inne multimedia. mediaItem
zawiera bezpośredni link do elementu, link do elementu w Zdjęciach Google oraz inne odpowiednie metadane. Więcej informacji znajdziesz w artykułach na temat uzyskiwania dostępu do elementów multimedialnych i mediaItems
.
Lista albumów utworzonych przez aplikację
Możesz wyświetlić albumy utworzone przez Twoją aplikację za pomocą albums.list
.
REST
Oto przykładowa prośba:
GET https://photoslibrary.googleapis.com/v1/albums
Żądanie zwraca ten wynik:
{ "albums": [ { "id": "album-id", "title": "album-title", "productUrl": "album-product-url", "coverPhotoBaseUrl": "album-cover-base-url_do-not-use-directly", "coverPhotoMediaItemId": "album-cover-media-item-id", "isWriteable": "whether-you-can-write-to-this-album", "mediaItemsCount": "number-of-media-items-in-album" }, ... ], "nextPageToken": "token-for-pagination" }
Każdy zwrócony album ma identyfikator, za pomocą którego można pobrać jego zawartość, jak pokazano w sekcji Lista zawartości albumu. Zawiera też tytuł i liczbę elementów multimedialnych.
productUrl
wskazuje album w Zdjęciach Google, który użytkownik może otworzyć.
Plik coverPhotoMediaItemId
zawiera identyfikator zasobu multimedialnego, który reprezentuje zdjęcie na okładce tego albumu. Aby uzyskać dostęp do tego zdjęcia na okładkę, kliknij coverPhotoBaseUrl
.
Nie należy używać tagu coverPhotoBaseUrl
bezpośrednio bez podania dodatkowych parametrów.
Odpowiedź zawiera też element nextPageToken
. Więcej informacji znajdziesz w artykule Przejście na inną stronę.
Odpowiedź dotycząca pustych albumów różni się tym, że mediaItemsCount
i coverPhotoMediaItemId
mają domyślnie wartość 0 i są pomijane w odpowiedzi REST. Pamiętaj też, że coverPhotoBaseUrl
wskazuje domyślny obrazek zastępczy.
Wyświetlanie listy zawartości biblioteki utworzonej przez aplikację
Możesz wyświetlić listę wszystkich multimediów z biblioteki Zdjęć Google użytkownika, które zostały utworzone przez Twoją aplikację. Nie dotyczy to elementów zarchiwizowanych ani usuniętych. Możesz wyświetlić elementy multimedialne według ich zawartości, daty i innych właściwości, stosując filtry.
Aby wyświetlić listę elementów multimedialnych, wybierz mediaItems.list
.
REST
Oto przykładowe żądanie:
GET https://photoslibrary.googleapis.com/v1/mediaItems
Content-type: application/json
Authorization: Bearer oauth2-token
{
"pageSize": "100",
}
Żądanie GET zwraca tę odpowiedź:
{ "mediaItems": [ ... ], "nextPageToken": "token-for-pagination" }
Odpowiedź zawiera listę elementów multimedialnych uporządkowanych od najnowszego do najstarszego.
Więcej informacji znajdziesz w sekcji mediaItems
. Zawiera on też nextPageToken
, który jest opisany bardziej szczegółowo w sekcji Przejścia.
Wyświetl listę zawartości albumu
Aby wyświetlić wszystkie elementy multimedialne w albumie, dodaj pole albumId
do żądania wyszukiwania. Więcej informacji o albumId
znajdziesz w artykule Wyświetlanie albumów. Jeśli wartość albumId
jest nieprawidłowa, zwracany jest błąd Bad Request
. Jeśli identyfikator jest prawidłowy, ale album nie istnieje dla uwierzytelnionego użytkownika, zostanie zwrócony błąd Not Found
. Więcej informacji o obsługiwaniu błędów znajdziesz w artykułach Wskazówki dotyczące wydajności i Sprawdzone metody.
REST
Oto przykładowa prośba:
POST https://photoslibrary.googleapis.com/v1/mediaItems:search
Content-type: application/json
Authorization: Bearer oauth2-token
{
"pageSize": "100",
"albumId": "album-id"
}
Żądanie POST zwraca tę odpowiedź:
{ "mediaItems": [ ... ], "nextPageToken": "token-for-pagination" }
Odpowiedź zawiera nextPageToken
i listę elementów multimedialnych. W przeciwieństwie do listy zawartości biblioteki elementy multimedialne są zwracane według kolejności w albumie. Więcej informacji znajdziesz w sekcjach mediaItems
i Podział na strony. Użytkownik może edytować zamówienie w interfejsie Zdjęć Google.
Jeśli ustawisz opcję albumId
, nie będzie można zastosować filtra podczas wyświetlania zawartości albumu.
Spowoduje to błąd Bad Request
.
Podział na strony w przypadku REST
Aby zwiększyć wydajność, metody zwracające dużą liczbę wyników (np. metody listy) mogą dzielić odpowiedź na strony. Maksymalna liczba wyników na każdej stronie jest określana przez parametr pageSize
.
W przypadku wywołań funkcji mediaItems.search
i mediaItems.list
domyślny rozmiar strony to 25 elementów. Zalecamy ten rozmiar strony, ponieważ zapewnia on równowagę między rozmiarem odpowiedzi a poziomem współczynnika wypełnienia. Maksymalny rozmiar strony w przypadku żądań wyszukiwania elementów multimedialnych i list to 100 elementów.
Domyślny i zalecany rozmiar strony z listą albumów to 20 albumów, a maksymalnie 50 albumów.
Jeśli liczba dostępnych wyników jest większa niż rozmiar strony, odpowiedź zawiera nextPageToken
, co wskazuje aplikacji, że na serwerze są jeszcze inne wyniki.
Przykład
Musisz dodać nextPageToken
do kolejnych żądań w parametrze pageToken
, jak pokazano w tym przykładzie. Określ parametr pageToken
wraz z innymi parametrami wymaganymi do wykonania operacji w treści żądania lub jako parametr zapytania.
Prośba nr 1
{ "pageSize": "5", "filters": { … } }
Odpowiedź 1
{ "mediaItem": [ … ], "nextPageToken": "next-page-token" }
Prośba nr 2
{ "pageSize": "5", "filters": { … }, "pageToken": "page-token" }
Odpowiedź 2
{ "mediaItem": [ … ], "nextPageToken": "next-page-token" }
Powtarzaj ten wzór, dopóki nie znikną wszystkie obiekty nextPageToken
.
Pole nextPageToken
jest prawidłowe tylko w przypadku tego samego żądania. Jeśli jakieś parametry ulegną zmianie, wcześniej użytego parametru nextPageToken
nie należy używać w tym samym żądaniu.