Mã thông báo phiên
Sử dụng bộ sưu tập để sắp xếp ngăn nắp các trang
Lưu và phân loại nội dung dựa trên lựa chọn ưu tiên của bạn.
Tính năng Tự động hoàn thành địa điểm (cũ) sử dụng mã thông báo phiên để nhóm các giai đoạn truy vấn và lựa chọn của một lượt tìm kiếm tự động hoàn thành của người dùng thành một phiên riêng biệt cho mục đích thanh toán. Phiên bắt đầu khi người dùng bắt đầu nhập cụm từ tìm kiếm và kết thúc khi họ chọn một địa điểm và thực hiện lệnh gọi đến Thông tin chi tiết về địa điểm (Cũ). Mỗi phiên có thể có nhiều truy vấn tự động hoàn thành, theo sau là một lựa chọn địa điểm. (Các) khoá API dùng cho mỗi yêu cầu trong một phiên phải thuộc cùng một dự án trên Google Cloud Console. Sau khi một phiên kết thúc, mã thông báo sẽ không còn hợp lệ nữa; ứng dụng của bạn phải tạo một mã thông báo mới cho mỗi phiên. Nếu bạn bỏ qua thông số sessiontoken
hoặc nếu bạn sử dụng lại mã thông báo phiên, thì phiên sẽ được tính phí như thể không có mã thông báo phiên nào được cung cấp (mỗi yêu cầu sẽ được tính phí riêng).
Bạn nên tuân thủ các nguyên tắc sau:
- Sử dụng mã thông báo phiên cho tất cả các phiên tự động điền.
- Tạo mã thông báo mới cho mỗi phiên.
- Đảm bảo rằng(các) khoá API dùng cho tất cả các yêu cầu Tự động hoàn thành địa điểm (cũ) và Thông tin chi tiết về địa điểm (cũ) trong một phiên thuộc cùng một dự án trên Google Cloud Console.
- Hãy nhớ truyền một mã thông báo phiên duy nhất cho mỗi phiên mới. Việc sử dụng cùng một mã thông báo cho nhiều phiên sẽ khiến mỗi yêu cầu được tính phí riêng.
Bạn có thể tuỳ ý bỏ qua mã thông báo phiên tự động hoàn thành khỏi yêu cầu. Nếu bạn bỏ qua mã thông báo phiên, thì mỗi yêu cầu sẽ được tính phí riêng, kích hoạt SKU Tự động hoàn thành – Theo yêu cầu. Nếu bạn sử dụng lại mã thông báo phiên, thì phiên đó sẽ được coi là không hợp lệ và các yêu cầu sẽ bị tính phí như thể không có mã thông báo phiên nào được cung cấp.
Ví dụ:
Khi người dùng nhập một truy vấn, một yêu cầu tự động hoàn thành sẽ được gọi sau mỗi vài thao tác nhấn phím (không phải theo từng ký tự) và danh sách kết quả có thể có sẽ được trả về.
Khi người dùng chọn một mục trong danh sách kết quả, mục đó được tính là một yêu cầu và tất cả các yêu cầu được thực hiện trong quá trình tìm kiếm sẽ được gộp lại và tính là một yêu cầu. Nếu người dùng chọn một địa điểm, thì cụm từ tìm kiếm sẽ được cung cấp miễn phí và chỉ yêu cầu dữ liệu Địa điểm mới bị tính phí. Nếu người dùng không đưa ra lựa chọn trong vòng vài phút kể từ khi bắt đầu phiên, thì chỉ truy vấn tìm kiếm mới bị tính phí.
Hãy cùng xem xét luồng sự kiện này từ góc độ của một ứng dụng.
- Người dùng bắt đầu nhập cụm từ tìm kiếm "Paris, Pháp".
- Khi phát hiện hoạt động đầu vào của người dùng, ứng dụng sẽ tạo một mã thông báo phiên mới, "Mã thông báo A".
- Khi người dùng nhập, API sẽ tạo một yêu cầu tự động hoàn thành sau mỗi vài ký tự, hiển thị một danh sách mới gồm các kết quả tiềm năng cho mỗi ký tự:
"P"
"Par"
"Paris,"
"Paris, Fr"
- Khi người dùng chọn:
- Tất cả các yêu cầu phát sinh từ truy vấn này được nhóm lại và thêm vào phiên được biểu thị bằng "Mã thông báo A", dưới dạng một yêu cầu duy nhất.
- Lựa chọn của người dùng được tính là một yêu cầu Thông tin chi tiết về địa điểm và được thêm vào phiên được biểu thị bằng "Mã thông báo A".
- Phiên kết thúc và ứng dụng sẽ loại bỏ "Mã thông báo A".
Để biết thêm thông tin về cách tính phí các yêu cầu Tự động hoàn thành địa điểm (cũ), hãy xem phần Sử dụng và tính phí.
Tạo mã thông báo phiên
Bạn có thể tạo mã thông báo phiên bằng bất kỳ cơ chế lập trình nào mà bạn muốn. Bạn nên sử dụng UUID phiên bản 4 cho mã thông báo phiên.
Trừ phi có lưu ý khác, nội dung của trang này được cấp phép theo Giấy phép ghi nhận tác giả 4.0 của Creative Commons và các mẫu mã lập trình được cấp phép theo Giấy phép Apache 2.0. Để biết thông tin chi tiết, vui lòng tham khảo Chính sách trang web của Google Developers. Java là nhãn hiệu đã đăng ký của Oracle và/hoặc các đơn vị liên kết với Oracle.
Cập nhật lần gần đây nhất: 2025-08-31 UTC.
[null,null,["Cập nhật lần gần đây nhất: 2025-08-31 UTC."],[],[],null,["# Session Tokens\n\nSelect platform: [Android](/maps/documentation/places/android-sdk/session-tokens \"View this page for the Android platform docs.\") [iOS](/maps/documentation/places/ios-sdk/session-tokens \"View this page for the iOS platform docs.\") [JavaScript](/maps/documentation/javascript/places-autocomplete#session_tokens \"View this page for the JavaScript platform docs.\") [Web Service](/maps/documentation/places/web-service/session-tokens \"View this page for the Web Service platform docs.\")\n\nPlace Autocomplete (Legacy) uses session tokens to group the query and selection\nphases of a user autocomplete search into a discrete session for billing\npurposes. The session begins when the user starts typing a query, and concludes\nwhen they select a place and a call to Place Details (Legacy) is made. Each session can\nhave multiple autocomplete queries, followed by one place selection. The API\nkey(s) used for each request within a session must belong to the same\nGoogle Cloud console project. Once a session has concluded, the token is no longer\nvalid; your app must generate a fresh token for each session. If the\n`sessiontoken` parameter is omitted, or if you reuse a session\ntoken, the session is charged as if no session token was provided (each request\nis billed separately).\n\nWe recommend the following guidelines:\n\n- Use session tokens for all autocomplete sessions.\n- [Generate a fresh token](#create-session-tokens) for each session.\n- Ensure that the API key(s) used for all Place Autocomplete (Legacy) and Place Details (Legacy) requests within a session belong to the same Google Cloud console project.\n- Be sure to pass a unique session token for each new session. Using the same token for more than one session will result in each request being billed individually.\n\nYou can optionally omit the autocomplete session token from a request. If\nthe session token is omitted, each request is billed separately, triggering the\n\n[Autocomplete - Per Request](/maps/billing-and-pricing/sku-details#autocomplete-request-new-ess-sku)\n\n\nSKU. If you reuse a session token, the session is considered invalid and the\nrequests are charged as if no session token was provided.\n\nExample\n-------\n\nAs the user types a query, an autocomplete request is called every few\nkeystrokes (not per-character), and a list of possible results is returned.\nWhen the user makes a selection from the result list, the selection counts as\na request, and all of the requests made during the search are bundled and\ncounted as a single request. If the user selects a place, the search query is\navailable at no charge, and only the Place data request is charged. If the user does not make a\nselection within a few minutes of the beginning of the session, only the\nsearch query is charged.\n\nLet's examine this flow of events from the perspective of an app.\n\n1. A user begins typing a query to search for \"Paris, France\".\n2. Upon detecting user input, the app creates a new session token, \"Token A\".\n3. As the user types, the API makes an autocomplete request every few characters, displaying a new list of potential results for each: \n \"P\" \n \"Par\" \n \"Paris,\" \n \"Paris, Fr\" \n4. When the user makes a selection:\n - All requests resulting from the query are grouped and added to the session represented by \"Token A\", as a single request.\n - The user's selection is counted as a Place Detail request, and added to the session represented by \"Token A\".\n5. The session is concluded, and the app discards \"Token A\".\n\nFor more information about how Place Autocomplete (Legacy) requests are billed, see\n\n[Usage and Billing](/maps/documentation/places/web-service/usage-and-billing#about-autocomplete-sessions).\n\nCreate session tokens\n---------------------\n\n\nYou can create session tokens using whichever programmatic mechanism you\nprefer. We recommend using a [version 4 UUID](https://tools.ietf.org/html/rfc4122)\nfor session tokens."]]