首页 > 解决方案 > Google Places Nearby API 使用 CURL PHP 仅返回 6 个结果

问题描述

我正在使用 google Places API,当我在 chrome 浏览器(在 Mac 上)中请求提供的 URL 时,它返回的结果超过 20 个。

但是当我在 PHP curl 代码中请求相同的 URL 时,它只返回 6 个结果。

无法让它工作。请帮忙。

            $ch = curl_init();
            $url = 'https://maps.googleapis.com/maps/api/place/nearbysearch/json?location=31.4814662,74.411793&radius=20000&keyword='.urlencode('ac technician').'&key=API_KEY';
            curl_setopt($ch, CURLOPT_URL, $url);
            curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
            curl_setopt($ch, CURLOPT_HEADER, 0);
            curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
            curl_setopt($ch, CURLOPT_VERBOSE, 1);
            curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
            curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
            $response = curl_exec($ch);
            echo "#####".$response;            exit();

标签: phpcurlcloudgoogle-places-api

解决方案


我无法重现这一点,因为您的代码为同一个 api 调用返回了 15 个结果。我读了一点,似乎在打了很多电话后它只返回 5 个结果。

但是,如果您说在浏览器中获得的结果比在 curl 调用中更多,我会模仿浏览器发送的标头,以User-Agent. 检查添加是否适合您:

$headers = array();
$headers[] = 'User-Agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.100 Safari/537.36';
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);

此标头正在复制可以由 Firefox 浏览器发送的标头。


推荐阅读