谷歌放置api无效请求错误

时间:2017-12-18 22:24:33

标签: node.js google-maps parsing google-places-api

我尝试使用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"
 }

1 个答案:

答案 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服务独立运行后,您可以检查是否正确附加了变量。

我希望这会有所帮助,并且让它运转起来!