简单的PHP Google Places API请求

时间:2011-07-27 22:31:26

标签: php api

所以,如果我把它放在我的浏览器网址中:

https://maps.googleapis.com/maps/api/place/search/xml?location=45.508867,-73.554242&radius=500&sensor=false&key=mykey

有效。但是如果我在PHP中尝试完全相同的调用,我会得到ACCESS DENIED:

<?php
  $ch = curl_init();
  curl_setopt($ch, CURLOPT_URL, "https://maps.googleapis.com/maps/api/place/search/xml");
  curl_setopt($ch, CURLOPT_POSTFIELDS, "location=45.508867,-73.554242&radius=500&sensor=false&key=mykey");
  $result = curl_exec($ch);
  echo $result;
?> 

我尝试了很多不同的选项和微小的改动,但没有任何作用,我无法弄清楚原因。

3 个答案:

答案 0 :(得分:0)

如果您出于测试目的而这样做,请确保未启用SSL验证,因为这样可以防止它可能阻止执行请求表单。

答案 1 :(得分:0)

我相信你错过了这个卷曲设置:

curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

答案 2 :(得分:0)

$latitude = 27.7172;
$longitude = 85.3240;
$radius = 50000;
$name = "kupondole";    
$url = "https://maps.googleapis.com/maps/api/place/search/json?name=".urlencode($name)."&location=".$latitude.",".$longitude."&radius=".$radius."&key=MY_KEY";
            $ch = curl_init();
           curl_setopt($ch, CURLOPT_URL, $url);
           curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
           curl_setopt($ch, CURLOPT_PROXYPORT, 3128);
           curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
           curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
            $response = curl_exec($ch);
          curl_close($ch);

完美无缺。