Web services Google Places Autocomplete(包括Places详细信息)在使用会话令牌时未触发SKU
我正在向Google places autocomplete和details api发出请求。对于这两种情况,我使用会话令牌免费使用自动完成api,但在Google报告中没有看到Web services Google Places Autocomplete(包括Places详细信息)在使用会话令牌时未触发SKU,web-services,google-places-api,Web Services,Google Places Api,我正在向Google places autocomplete和details api发出请求。对于这两种情况,我使用会话令牌免费使用自动完成api,但在Google报告中没有看到autocomplete(包括位置详细信息)SKU。我一周前就开始使用它了,我看到的只是SKU:Autocomplete,没有位置详细信息–每个会话 在我的代码中,我在请求details api之后生成了一个新的版本4 UUID兼容的会话令牌。我遵循文件中的指导原则,其中指出: 所以我正在做那件事。但是我在报告中没有看
autocomplete(包括位置详细信息)SKU
。我一周前就开始使用它了,我看到的只是SKU:Autocomplete,没有位置详细信息–每个会话
在我的代码中,我在请求details api之后生成了一个新的版本4 UUID兼容的会话令牌。我遵循文件中的指导原则,其中指出:
所以我正在做那件事。但是我在报告中没有看到自动完成(包括地点详细信息)
。我确信已经打了很多电话。知道为什么会这样吗
注意:我没有使用placeid
而是使用place\u id
参数来进行详细信息调用,该调用同样有效。我不认为这是原因,但无论如何
我正在使用此函数生成会话令牌:
var UUID = (function() {
var self = {};
var lut = [];
for (var i=0; i<256; i++) { lut[i] = (i<16?'0':'')+(i).toString(16); }
self.generate = function() {
var d0 = Math.random()*0xffffffff|0;
var d1 = Math.random()*0xffffffff|0;
var d2 = Math.random()*0xffffffff|0;
var d3 = Math.random()*0xffffffff|0;
return lut[d0&0xff]+lut[d0>>8&0xff]+lut[d0>>16&0xff]+lut[d0>>24&0xff]+'-'+
lut[d1&0xff]+lut[d1>>8&0xff]+'-'+lut[d1>>16&0x0f|0x40]+lut[d1>>24&0xff]+'-'+
lut[d2&0x3f|0x80]+lut[d2>>8&0xff]+'-'+lut[d2>>16&0xff]+lut[d2>>24&0xff]+
lut[d3&0xff]+lut[d3>>8&0xff]+lut[d3>>16&0xff]+lut[d3>>24&0xff];
}
return self;
})();
该函数用预测填充列表,并向每个列表项添加单击事件侦听器。单击项目时,将调用以下函数
// Place Details request
focusSelected: function(e) {
var url = this.options.url + '/details?' +
'place_id=' + e.target.place_id;
if (this.options.useSessions) {
url += '&sessiontoken=' + this.sessionToken;
this.sessionToken = UUID.generate(); // This creates a new token
}
var geocoder = this;
$.get(url, function(data, status) {
if (data === undefined || data.status !== 'OK') {
return;
}
// Use result
});
},
我还在每个调用中设置API键。不必介意。如果您在开始会话的几分钟内没有完成
地点详细信息
请求,您将看到自动完成而不显示地点详细信息–每个会话
文档
在多次自动完成请求之后,我经常会执行一个地点详细信息请求。您是否确保对所有请求使用相同的会话id?或者您正在为每个生成新的会话id?我一次只使用一个令牌。我使用令牌ABC执行几个自动完成请求,然后使用相同的令牌ABC执行一个位置详细信息。每次完成place details请求时,我都会为下一个自动完成或详细信息请求生成一个新的会话令牌。我添加了一些代码。如果你还需要什么,请告诉我。我只是把你的代码放到了一个演示中,它看起来应该能正常工作。您是否已签出网络请求以验证发送的会话令牌是否正确?另外,您是否尝试过在提供的屏幕截图中对3个请求进行硬编码,以查看其是否有效?
// Place Details request
focusSelected: function(e) {
var url = this.options.url + '/details?' +
'place_id=' + e.target.place_id;
if (this.options.useSessions) {
url += '&sessiontoken=' + this.sessionToken;
this.sessionToken = UUID.generate(); // This creates a new token
}
var geocoder = this;
$.get(url, function(data, status) {
if (data === undefined || data.status !== 'OK') {
return;
}
// Use result
});
},