我尝试使用node.js解析google place web api,以获取有关首尔咖啡馆的一些信息。它获得了前20家咖啡馆,但是当我尝试使用next_page_token获得下一个20时,它说这是一个无效的请求。我发现了一些堆栈溢出问题,说在0~2秒后尝试但是对我来说不起作用。 api_key没问题,因为我成功地获得了前20名。
var search_keyword = "cafe+seoul";
const api_key = "";
var url = "https://maps.googleapis.com/maps/api/place/textsearch/json?query=" + search_keyword + "&key=" + api_key;
https.get(url, function (res) {
var body = '';
res.on('data', function (chunk) {
body += chunk;
});
res.on('end', function () {
var response = JSON.parse(body);
pool.getConnection(function (err, conn) {
if (err) {
if (conn) {
conn.release;
}
}
//INSIDE DB
// for (var i = 0; i < 20; i++) {
// var place_id = response.results[i].id;
// var data = {
// place_id: place_id
// };
// conn.query('INSERT INTO place_id SET ?', data);
// }
var next_page_token = response.next_page_token;
console.log(next_page_token);
var next_page_url = "https://maps.googleapis.com/maps/api/place/nearbysearch/json?pagetoken=" + next_page_token + "&key=" + api_key;
console.log(next_page_url);
// if (response.next_page_token == null) {
// break;
// }
})
});
});
看起来像这样。
{
"html_attributions" : [],
"results" : [],
"status" : "INVALID_REQUEST"
}
答案 0 :(得分:0)
因此,在这些情况下,首先测试Google Places Web Service API是一个好主意。通过这种方式,您可以隔离API是否可能发生某些事情,或者您是否错误地附加了params。
使用search_keyword
尝试第一个请求确实会产生前20个结果。以下样品申请。 (只需使用自己的API密钥)
https://maps.googleapis.com/maps/api/place/textsearch/json?query=cafe%20seoul&key=YOUR_API_KEY
您确实会使用其响应中的next_page_token
。但是你必须使用相同的端点。我可以看到你将你改为/maps/api/place/nearbysearch/
。它应该是这样的:
https://maps.googleapis.com/maps/api/place/textsearch/json?key=YOUR_API_KEY&pagetoken=CoQC8wAAALQDKxtqy8CzlMQlksz3Id8hFE0zsxpMT-4TrNnb5wzppwlBoaKcF0YA9o22o2uZMjZe59IjBBcRi0yUP0lMzGH8CaQLV9pM6apOgvYAJUo8Xn7-a-kvvl5dD5Ju_CNS8NX0oPv9R4IQLQid5j2DA7THb3Mh_WpTVcrtK6eubHW4CDu0Byy69I7-33BSY5RXu94RZQE0n5jpuNIfpTvzpDdXW1vjHyPtBmhu8vEZP8BWy13ja6Wvv_aDne4cTtknq5TFrNpQsfXvVGQeiYA_J7gs7RP6bESpL7NILhghGyr2gIl9El-ziu66HrDq1klGurF4wY-GGNwl8QP1xpbFfL4SEAHx5Zp2ao8drcaQqGyVjMkaFLSChCwXhDXonok6GZvt34XWfA6g
让Web服务独立运行后,您可以检查是否正确附加了变量。
我希望这会有所帮助,并且让它运转起来!