Sesje są podstawą interfejsu Picker API i stanowią bezpieczny i kontrolowany sposób wybierania zdjęć i filmów z biblioteki Zdjęć Google. Z tego przewodnika dowiesz się, jak tworzyć sesje ankietowania, nimi zarządzać i skutecznie je przeprowadzać, aby umożliwić bezproblemowy wybór zdjęć w aplikacji.
Zanim rozpoczniesz
- Skonfiguruj aplikację:włącz interfejs API i skonfiguruj uwierzytelnianie. Szczegółowe instrukcje znajdziesz w artykule Konfigurowanie aplikacji.
- Zapoznaj się z procedurą: przeczytaj artykuł Pierwsze kroki z interfejsem Picker API, aby dowiedzieć się, jak wygląda 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 wybierania zdjęć za pomocą sesji.
- Utwórz sesję, aby umożliwić użytkownikowi wybranie elementów multimedialnych.
- Sprawdź sesję, aby sprawdzić, kiedy użytkownik zakoń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 w Twojej aplikacji.
sessions.create
generuje nową sesję, zwracając unikalny identyfikator pickerUri
, który możesz wyświetlić użytkownikom. Sesja pozostaje aktywna do momentu, gdy użytkownik wybierze elementy multimedialne lub do czasu jej zakończenia.
Ograniczenia sesji
Pamiętaj o limitach sesji. Interfejs Picker API wymusza limity liczby sesji, które możesz utworzyć, aby zapewnić odpowiedzialne korzystanie z usługi i zapobiegać nadużyciom. W normalnych okolicznościach nie powinno to nastąpić. Aby uniknąć problemów, należy jednak aktywnie śledzić i oczyszczać sesje.
Ankietowanie i monitorowanie sesji
Po utworzeniu sesji okresowo odpytuj punkt końcowy sessions.get
, aby sprawdzić stan sesji. Właściwość mediaItemsSet
w odpowiedzi zwraca true
, gdy użytkownik dokona wyboru.
Używaj wydajnego mechanizmu ankiety. Odpowiedź sessions.get
zawiera obiekt pollingConfig
. Aby uniknąć niepotrzebnych połączeń i zapewnić użytkownikom płynne korzystanie z usługi, użyj tych pól:
pollInterval
: optymalne interwały pomiarówtimeoutIn
: czas oczekiwania
Więcej informacji znajdziesz w przykładowym procesie ankietowania.
Usuwanie i czyszczenie sesji
sessions.delete
usuwa sesję. Jest to zwykle używane do czyszczenia po zakończeniu przez użytkownika wyboru multimediów lub po przekroczeniu limitu czasu sesji.
Sprawdzoną metodą jest usuwanie sesji, gdy użytkownik wybierze elementy multimedialne i aplikacja pobierze bajty tych elementów.
Przykładowy przepływ danych
Oto przykład tworzenia sesji i wybierania jej. Po uwierzytelnieniu użytkownika utwórz nową sesję.
- Utwórz sesję: wywołaj funkcję
sessions.create
, aby zainicjować nową sesję i uzyskać wartośćpickerUri
. - Pokaż użytkownikowi
pickerUri
: wyświetl adres URL lub wygeneruj kod QR, który użytkownik może zeskanować. Przeczytaj omówienie procesu wyboru użytkownika. - Przeprowadź ankietę w ramach sesji:
- Użyj zalecanego parametru pollInterval z
pollingConfig
. - Sprawdź, czy
mediaItemsSet
jest prawdziwe.- Jeśli
true
, przejdź do listy wybranych elementów multimedialnych. - Jeśli
false
, kontynuuj odczytywanie do momentu osiągnięciatimeoutIn
.
- Jeśli
- Radź sobie z limitami czasu i anulowaniami.
- Użyj zalecanego parametru pollInterval z
GET https://photoslibrary.googleapis.com/v1/sessions/{sessionId}
Oto przykład odpowiedzi:
{
"id": string,
"pickerUri": string,
"pollingConfig": {
object (PollingConfig)
},
"mediaItemsSet": boolean
}
Wyświetl użytkownikowi pickerUri
, a potem rozpocznij ankietowanie sesji.
Sprawdź, czy w odpowiedzi znajdują się te informacje:
mediaItemsSet
: wartość „PRAWDA”, jeśli użytkownik zakończył wybieranie elementów multimedialnychpollingConfig.pollInterval
: zalecany czas oczekiwania przed kolejnym głosowaniempollingConfig.timeoutIn
: łączny czas oczekiwania przed przekroczeniem limitu
Jeśli mediaItemsSet
ma wartość fałsz, a timeoutIn
nie został osiągnięty, poczekaj na pollInterval
i powtórz ankietę.
Jeśli mediaItemsSet
ma wartość Prawda, wyświetl listę wybranych elementów multimedialnych.
Jeśli wartość timeoutIn
zostanie osiągnięta, obsłuż czas oczekiwania.