Tworzenie sesji i zarządzanie nimi

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.

  1. Utwórz sesję, aby umożliwić użytkownikowi wybranie elementów multimedialnych.
  2. Sprawdź sesję, aby sprawdzić, kiedy użytkownik zakończył wybieranie elementów multimedialnych.
  3. Wyświetlanie i pobieranie elementów multimedialnych.
  4. 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ów
  • timeoutIn: 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ę.

  1. Utwórz sesję: wywołaj funkcję sessions.create, aby zainicjować nową sesję i uzyskać wartość pickerUri.
  2. 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.
  3. Przeprowadź ankietę w ramach sesji:
    1. Użyj zalecanego parametru pollInterval z pollingConfig.
    2. Sprawdź, czy mediaItemsSet jest prawdziwe.
      1. Jeśli true, przejdź do listy wybranych elementów multimedialnych.
      2. Jeśli false, kontynuuj odczytywanie do momentu osiągnięcia timeoutIn.
    3. Radź sobie z limitami czasu i anulowaniami.
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 multimedialnych
  • pollingConfig.pollInterval: zalecany czas oczekiwania przed kolejnym głosowaniem
  • pollingConfig.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.