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