会话令牌

请选择平台: Android iOS JavaScript 网络服务

地点自动补全功能使用会话令牌将用户自动补全搜索的查询和选择阶段划分到独立的会话中,以便进行结算。会话在用户开始输入查询时开始,并在用户选择地点并调用“地点详情”时结束。每个会话可以包含多个自动补全查询,后跟一个地点选择。会话中的每个请求使用的 API 密钥必须属于同一个 Google Cloud 控制台项目。会话结束后,令牌将失效;您的应用必须为每个会话生成一个新的令牌。如果省略 sessiontoken 参数或者您重复使用会话令牌,系统会按照未提供会话令牌的情况对会话收费(每个请求均单独计费)。

我们建议您遵循以下准则:

  • 为所有自动补全会话使用会话令牌。
  • 为每个会话生成一个新的令牌
  • 确保会话内所有“地点自动补全”请求和“地点详情”请求所使用的 API 密钥都属于同一个 Google Cloud 控制台项目。
  • 请务必为每个新会话传递唯一的会话令牌。针对多个会话使用同一令牌会导致每个请求被单独计费。

您可以选择在请求中省略自动补全会话令牌。如果省略会话令牌,则每个请求都将单独结算,从而触发自动补全 - 按请求结算 SKU。如果您重复使用某个会话令牌,该会话会被视为无效,并且系统会按未提供会话令牌的情况为请求计费。

示例

在用户输入查询时,系统会每隔几个按键(不是按字符)调用一次自动补全请求,并返回可能的结果列表。当用户从结果列表中进行选择时,选择计为一个请求,搜索期间发出的所有请求会捆绑并计为一个请求。如果用户选择某个地点,可免费使用搜索查询,并且只需对地点数据请求付费。如果用户在会话开始后的几分钟内没有进行选择,则只需为搜索查询付费。

让我们从应用的角度来看一下这种事件流。

  1. 一位用户开始输入查询来搜索“法国巴黎”。
  2. 检测到用户输入时,应用会创建一个新的会话令牌,即“令牌 A”。
  3. 在用户输入内容时,API 会每隔几个字符发出一次自动补全请求,同时针对每个字符显示一个新的潜在结果列表:
    "P"
    “Par”
    “Paris,”
    “Paris, Fr”
  4. 当用户做出选择时:
    • 通过查询生成的所有请求都会组合起来,作为单个请求添加到由“令牌 A”表示的会话中。
    • 系统会将用户的选择计为“地点详情”请求,并将其添加到由“令牌 A”表示的会话中。
  5. 会话结束,并且应用舍弃“令牌 A”。

如需详细了解“自动补全”请求的结算方式,请参阅使用量和结算

创建会话令牌

如需创建会话令牌,请调用 AutocompleteSessionToken.newInstance()