Autouzupełnianie miejsc używa tokenów sesji do grupowania zapytań i etapów wyboru autouzupełniania wyszukiwania przez użytkownika w oddzielną sesję na potrzeby rozliczeń. Sesja rozpoczyna się, gdy użytkownik zaczyna wpisywać zapytanie, a kończy się, gdy wybiera miejsce i wywołuje polecenie szczegółów miejsca. Każda sesja może zawierać wiele zapytań autouzupełniania, po których następuje wybór jednego miejsca. Klucze interfejsu API używane w przypadku każdego żądania w sesji muszą należeć do tego samego projektu w Google Cloud Console. Po zakończeniu sesji token traci ważność. Aplikacja musi wygenerować nowy token dla każdej sesji. W przypadku pominięcia parametru sessiontoken
lub ponownego użycia tokena sesji sesja jest naliczana tak, jakby nie został podany żaden token sesji (każde żądanie jest rozliczane oddzielnie).
Zalecamy stosowanie tych wytycznych:
- Używaj tokenów sesji we wszystkich sesjach autouzupełniania.
- Wygeneruj nowy token dla każdej sesji.
- Sprawdź, czy klucze interfejsu API używane we wszystkich żądaniach autouzupełniania i informacji o miejscu w ramach sesji należą do tego samego projektu w Google Cloud Console.
- Pamiętaj, aby przekazywać unikalny token sesji dla każdej nowej sesji. Używanie tego samego tokena w więcej niż 1 sesji spowoduje, że każde żądanie będzie rozliczane indywidualnie.
Możesz opcjonalnie pominąć token sesji autouzupełniania w żądaniu. W razie pominięcia tokena sesji każde żądanie jest rozliczane oddzielnie, co powoduje uruchomienie autouzupełniania – na żądanie. Jeśli ponownie użyjesz tokena sesji, sesja zostanie uznana za nieprawidłową, a żądania zostaną naliczone tak, jakby nie podano żadnego tokena sesji.
Przykład
Gdy użytkownik wpisuje zapytanie, żądanie autouzupełniania jest wywoływane co kilka naciśnięć klawiszy (a nie na znak) i pojawia się lista możliwych wyników. Gdy użytkownik wybierze coś z listy wyników, jest to liczone jako żądanie, a wszystkie żądania zgłoszone podczas wyszukiwania są grupowane i zliczane jako jedno żądanie. Jeśli użytkownik wybierze miejsce, zapytanie jest dostępne bezpłatnie, a opłata jest naliczana tylko za żądanie danych miejsca. Jeśli użytkownik nie dokona wyboru w ciągu kilku minut od rozpoczęcia sesji, naliczana jest opłata tylko za wyszukiwane hasło.
Przyjrzyjmy się temu przepływowi zdarzeń z perspektywy aplikacji.
- Użytkownik zaczyna wpisywać zapytanie, aby wyszukać „Paryż, Francja”.
- Po wykryciu danych wejściowych użytkownika aplikacja tworzy nowy token sesji „Token A”.
- Gdy użytkownik wpisuje zapytanie, interfejs API wysyła żądanie autouzupełniania co kilka znaków i wyświetla nową listę potencjalnych wyników dla każdego z nich:
„P”,
„Par”,
„Paryż”,
„Paryż, pt”
- Gdy użytkownik dokona wyboru:
- Wszystkie żądania wynikające z zapytania są grupowane i dodawane do sesji reprezentowanej przez „token A” w postaci pojedynczego żądania.
- Wybór użytkownika jest liczony jako żądanie szczegółów miejsca i dodawany do sesji reprezentowanej przez „token A”.
- Sesja się zakończy, a aplikacja odrzuca „Token A”.
Więcej informacji o sposobie naliczania opłat za żądania autouzupełniania znajdziesz w artykule Korzystanie i płatności.
Tworzenie tokenów sesji
Aby utworzyć token sesji, wywołaj AutocompleteSessionToken.newInstance()
.