Tworzenie sesji i zarządzanie nimi

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.

  1. Utwórz sesję, aby umożliwić użytkownikowi wybieranie elementów multimedialnych.
  2. Sprawdź sesję, aby dowiedzieć się, kiedy użytkownik skoń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 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 sondowania
  • timeoutIn: 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ę.

  1. Utwórz sesję: wywołaj sessions.create, aby rozpocząć nową sesję i uzyskać pickerUri.
  2. 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.
  3. Zadaj pytanie w sesji:
    1. Użyj zalecanego parametru pollInterval z pollingConfig.
    2. Sprawdza, czy mediaItemsSet ma wartość PRAWDA.
      1. Jeśli pojawi się true, przejdź do listy wybranych elementów multimedialnych.
      2. Jeśli false, kontynuuj odpytywanie, dopóki nie zostanie osiągnięta wartość timeoutIn.
    3. Obsługuj przekroczenia limitu czasu i anulowania w odpowiedni sposób.
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łosowaniem
  • pollingConfig.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.