google api v3 key在本地(dev)工作但不在生产中

时间:2012-11-29 13:37:46

标签: google-maps-api-3 api-key

我正在尝试在我的网站中使用Google商家信息自动填充API,但是当我提交网址时(在这种情况下,通过php上的cURL),该页面不会返回任何结果(完全空白页面)。但只有当我从我的网络托管中调用该页面时才会发生这种情况; localhost开发应用程序工作正常。如果我在浏览器中粘贴下面的网址,它也可以正常工作。 我的php测试页面有这样的东西:


    function curl_file($url, $timeout=0){
        $ch = curl_init();
        curl_setopt( $ch, CURLOPT_URL, $url );
        //curl_setopt ($ch, CURLOPT_HEADER, 1);
        curl_setopt( $ch, CURLOPT_RETURNTRANSFER, 1 );
        curl_setopt( $ch, CURLOPT_CONNECTTIMEOUT, $timeout );
        $str = curl_exec( $ch );
        curl_close( $ch );
        return $str;
    } 

    $content = curl_file("https://maps.googleapis.com/maps/api/place/autocomplete/json?input=flamboyant&location=-16.698053,-49.268947&radius=20000&sensor=false&key=AIzaSyBzdiVqEIh2CXBm3gNUsvWdIl1Z-NvW298");
    echo $content;

变量内容应该回显与浏览器中相同的JSON响应,但页面显示为绝对空白。 有人可以帮我解决这个问题吗?

p.s。:我的google api密钥设置为“允许任何引用”。我试图将Rerefers设为URL网站* .imoveisgo.com / *,但也不起作用。

谢谢所有!!

1 个答案:

答案 0 :(得分:0)

我认为这是cURL的SSL问题。请尝试以下代码:

function curl_file($url, $timeout=0){
  $ch = curl_init();
  curl_setopt( $ch, CURLOPT_URL, $url );
  //curl_setopt ($ch, CURLOPT_HEADER, 1);
  curl_setopt( $ch, CURLOPT_SSL_VERIFYPEER, FALSE);
  curl_setopt( $ch, CURLOPT_RETURNTRANSFER, 1 );
  curl_setopt( $ch, CURLOPT_CONNECTTIMEOUT, $timeout );
  $str = curl_exec( $ch );
  if(curl_errno($ch)) {
    echo "Err#".curl_error($ch);
    echo curl_error($ch);
  }
  curl_close( $ch );
  return $str;
} 

$content = curl_file("https://maps.googleapis.com/maps/api/place/autocomplete/json?input=flamboyant&location=-16.698053,-49.268947&radius=20000&sensor=false&key=AIzaSyBzdiVqEIh2CXBm3gNUsvWdIl1Z-NvW298");
echo $content;