Sesje są podstawą interfejsu Picker API i zapewniają bezpieczny i kontrolowany sposób wybierania zdjęć i filmów z biblioteki Zdjęć Google. Ten przewodnik zawiera informacje o tym, jak tworzyć sesje, zarządzać nimi i skutecznie je wykorzystywać do przeprowadzania ankiet, aby umożliwić bezproblemowe wybieranie zdjęć w aplikacji.
Zanim rozpoczniesz
- Skonfiguruj aplikację: włącz interfejs API i skonfiguruj uwierzytelnianie. Szczegółowe instrukcje znajdziesz w artykule Konfigurowanie aplikacji.
- Poznaj proces: zapoznaj się z artykułem Rozpoczęcie korzystania z interfejsu Picker API, aby poznać cały proces wyboru zdjęć.
- Sprawdź wymagane zakresy autoryzacji: praca z sesjami wymaga zakresu
photospicker.mediaitems.readonly
. Więcej informacji o zakresach znajdziesz w artykule Zakresy autoryzacji.
Cykl życia sesji
Interfejs Picker API udostępnia metody tworzenia sesji, pobierania informacji o nich i ich usuwania. Po uwierzytelnieniu użytkowników możesz zarządzać cyklem życia wyboru zdjęć za pomocą sesji.
- Utwórz sesję, aby umożliwić użytkownikowi wybieranie elementów multimedialnych.
- Sprawdź sesję, aby dowiedzieć się, kiedy użytkownik skończył wybieranie elementów multimedialnych.
- Wyświetlanie i pobieranie elementów multimedialnych
- Wyczyść sesję, usuwając ją.
Tworzenie sesji
Utwórz sesję, aby użytkownicy mogli bezpiecznie wybierać zdjęcia bezpośrednio z aplikacji Zdjęcia Google i udostępniać je z powrotem w Twojej aplikacji.
sessions.create
generuje nową sesję i zwraca unikalny identyfikator pickerUri
, który możesz wyświetlać użytkownikom. Sesja pozostaje aktywna do momentu, gdy użytkownik wybierze elementy multimedialne lub gdy upłynie limit czasu sesji. W przypadku aplikacji internetowych możesz dodać /autoclose
do pickerUri
, aby automatycznie zamknąć okno lub kartę Zdjęć Google po dokonaniu wyboru przez użytkownika. Więcej informacji znajdziesz w sekcji Wybieranie zdjęć: co widzą użytkownicy.
Ograniczenia sesji
Pamiętaj o limitach sesji. Interfejs Picker API wymusza limity liczby sesji, które możesz utworzyć, aby zapewnić odpowiedzialne korzystanie i zapobiec nadużyciom. W normalnych okolicznościach raczej nie osiągniesz tych limitów. Aby uniknąć problemów, warto jednak śledzić sesje i proaktywnie je czyścić.
Sprawdzanie i monitorowanie sesji
Po utworzeniu sesji okresowo wysyłaj zapytania do punktu końcowego sessions.get
, aby uzyskać stan sesji. Właściwość mediaItemsSet
w odpowiedzi zwraca wartość true
, gdy użytkownik dokona wyboru.
Pamiętaj o używaniu wydajnego odpytywania. Odpowiedź sessions.get
zawiera obiekt pollingConfig
. Aby uniknąć niepotrzebnych wywołań i zapewnić użytkownikom wygodę, użyj tych pól:
pollInterval
: optymalne odstępy sondowaniatimeoutIn
: czas trwania przerwy
Więcej informacji znajdziesz w przykładzie przepływu odpytywania.
Usuwanie i czyszczenie sesji
sessions.delete
usuwa sesję. Zwykle używa się jej do czyszczenia po zakończeniu przez użytkownika wybierania multimediów lub po upłynięciu limitu czasu sesji.
Zalecamy usuwanie sesji po wybraniu przez użytkownika elementów multimedialnych i pobraniu przez aplikację bajtów elementów multimedialnych.
Przykładowy przepływ ankiety
To jest przykład tworzenia sesji i przeprowadzania w niej ankiety. Po pierwszej autentykacji użytkownika utwórz nową sesję.
- Utwórz sesję: wywołaj
sessions.create
, aby rozpocząć nową sesję i uzyskaćpickerUri
. - Przedstaw
pickerUri
użytkownikowi: wyświetl adres URL lub wygeneruj kod QR, który użytkownik może zeskanować. Zapoznaj się z omówieniem procesu wyboru przez użytkownika. - Zadaj pytanie w sesji:
- Użyj zalecanego parametru pollInterval z
pollingConfig
. - Sprawdza, czy
mediaItemsSet
ma wartość PRAWDA.- Jeśli pojawi się
true
, przejdź do listy wybranych elementów multimedialnych. - Jeśli
false
, kontynuuj odpytywanie, dopóki nie zostanie osiągnięta wartośćtimeoutIn
.
- Jeśli pojawi się
- Obsługuj przekroczenia limitu czasu i anulowania w odpowiedni sposób.
- Użyj zalecanego parametru pollInterval z
GET https://photoslibrary.googleapis.com/v1/sessions/{sessionId}
Oto przykładowa odpowiedź:
{
"id": string,
"pickerUri": string,
"pollingConfig": {
object (PollingConfig)
},
"mediaItemsSet": boolean
}
Wyświetl użytkownikowi symbol pickerUri
, a potem rozpocznij sondowanie sesji.
Sprawdź, czy w odpowiedzi znajdują się te elementy:
mediaItemsSet
: wartość „true”, jeśli użytkownik zakończył wybieranie elementów multimedialnych.pollingConfig.pollInterval
: zalecany czas oczekiwania przed kolejnym głosowaniempollingConfig.timeoutIn
: łączny czas oczekiwania przed przekroczeniem limitu czasu
Jeśli mediaItemsSet
ma wartość false, a wartość timeoutIn
nie została osiągnięta, poczekaj na pollInterval
i ponownie wyślij zapytanie.
Jeśli mediaItemsSet
ma wartość „prawda”, przejdź do listy wybranych elementów multimedialnych.
Jeśli osiągnięto limit czasu timeoutIn
, obsłuż go w odpowiedni sposób.