会话令牌

请选择平台: 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”。

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

创建会话令牌

如需创建会话令牌,请调用 GMSAutocompleteSessionToken.init()