地点自动补全功能使用会话令牌将用户自动补全搜索功能的查询和选择阶段划分为独立的会话,以便进行结算。会话将在用户开始输入查询时开始,并在用户选择地点并调用地点详情时结束。每个会话可以有多个自动补全查询,后跟一个地点选择。会话中的每个请求所使用的 API 密钥必须属于同一 Google Cloud Console 项目。会话结束后,令牌将失效;您的应用必须为每个会话生成一个新令牌。如果省略 sessiontoken
参数或重复使用会话令牌,系统会按未提供会话令牌的情况为会话付费(每个请求均单独结算)。
我们建议您遵循以下准则:
- 为所有自动补全会话使用会话令牌。
- 为每个会话生成一个新令牌。
- 确保一个会话中的所有地点自动补全请求和地点详情请求使用的 API 密钥属于同一个 Google Cloud Console 项目。
- 请务必为每个新会话传递唯一的会话令牌。对多个会话使用相同的令牌将导致每个请求单独结算。
您可以选择从请求中忽略自动补全会话令牌。如果省略会话令牌,则每个请求都会单独结算,从而触发自动补全 - 按请求结算 SKU 功能。如果您重复使用某个会话令牌,相应会话会被视为无效,并且系统会按未提供会话令牌的情况为请求计费。
示例
当用户输入查询时,系统会每隔几个按键(而不是按字符)调用一次自动补全请求,并返回可能的结果列表。当用户从结果列表中做出选择时,相应选择会计为一次请求,并且搜索期间发出的所有请求都会打包并计为一次请求。如果用户选择地点,搜索查询是免费的,且仅收取地点数据请求的费用。如果用户在会话开始后的几分钟内未做出选择,则系统只会对搜索查询收费。
让我们从应用的角度审视这一事件流。
- 一位用户开始输入查询内容来搜索“法国巴黎”。
- 检测到用户输入后,应用会创建一个新的会话令牌,即“令牌 A”。
- 在用户输入内容时,该 API 会每隔几个字符发出一次自动补全请求,并为每个字符显示一个新的潜在结果列表:
“P”;
“Paar”;
“Paris”,“
”;“Paris,Fr”;
- 当用户进行选择时:
- 通过查询产生的所有请求都会作为单个请求被分组并添加到由“令牌 A”表示的会话中。
- 用户的选择会被计为“地点详情”请求,并添加到由“令牌 A”表示的会话中。
- 会话已结束,应用会舍弃“令牌 A”。
如需详细了解自动补全请求的计费方式,请参阅用量和结算。
创建会话令牌
您可以使用自己偏好的任何程序化机制创建会话令牌。我们建议对会话令牌使用版本 4 UUID。