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.
- Poznaj proces: zapoznaj się z informacjami o tym, jak zacząć korzystać z interfejsu Picker API, aby uzyskać ogólny obraz całego procesu 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 nakłada limity na liczbę sesji, które możesz utworzyć, aby zapewnić odpowiedzialne korzystanie i zapobiec nadużyciom. W normalnych okolicznościach nie powinno dojść do przekroczenia tych limitów. Aby uniknąć problemów, należy jednak aktywnie śledzić i oczyszczać sesje.
Ankiety i monitorowanie sesji
Po utworzeniu sesji okresowo sprawdzaj punkt końcowy sessions.get
, aby uzyskać stan sesji. Właściwość mediaItemsSet
w odpowiedzi zwraca wartość true
, gdy użytkownik zakończy wybór.
Używaj wydajnego mechanizmu sondowania. Odpowiedź sessions.get
zawiera obiekt pollingConfig
. Aby uniknąć niepotrzebnych połączeń i zapewnić użytkownikom płynne działanie aplikacji, użyj tych pól:
pollInterval
: optymalne interwały pomiarówtimeoutIn
: czas oczekiwania
Więcej informacji znajdziesz w przykładowym procesie ankietowania.
Usuwanie i porządkowanie 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 po wybraniu przez użytkownika elementów multimediów i po tym, jak aplikacja pobierze bajty elementu multimedialnego.
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ć. Zapoznaj się z omówieniem procesu wyboru przez użytkownika. - Ankietowanie sesji:
- Użyj zalecanego parametru pollInterval z
pollingConfig
. - Sprawdź, czy
mediaItemsSet
jest prawdziwe.- Jeśli
true
, przejdź do wyświetlenia wybranych elementów multimedialnych. - Jeśli
false
, kontynuuj odczytywanie do momentu osiągnięciatimeoutIn
.
- Jeśli
- prawidłowo obsługiwać przekroczenia limitów czasu i anulowania;
- 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
}
Pokaż użytkownikowi pickerUri
, a potem rozpocznij ankietowanie sesji.
Sprawdź odpowiedź pod kątem tych kwestii:
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 i nie osiągnięto wartości timeoutIn
, poczekaj na pollInterval
, a potem ponownie przeprowadź ankietę.
Jeśli mediaItemsSet
ma wartość Prawda, przejdź do wyświetlenia wybranych elementów multimedialnych.
Jeśli zostanie osiągnięty limit timeoutIn
, obsłuż czas oczekiwania.