使用谷歌地方服务与PHP卷曲

时间:2014-01-06 15:07:44

标签: google-maps curl google-places-api

我试图使用php curl的谷歌地方服务

在我的for循环中(2圈),我发送了我的网址, 在第一圈,我可以获得json信息,但第二圈给我“REQUEST_DENIED”状态。这是我的代码:

<?php

//header("content-type: application/json"); 
//header("content-type: Access-Control-Allow-Origin: *");
//header("content-type: Access-Control-Allow-Methods: GET");

set_time_limit(0);
ini_set("memory_limit","12000M");

error_reporting(E_ALL);
ini_set('display_errors', True);

$cumulResults = array();
$pagenext="";

for($i=0;$i<2;$i++)
{
    try{
        $curl = curl_init(); 
        curl_setopt_array($curl, array(
            CURLOPT_RETURNTRANSFER => 1,
            CURLOPT_URL => 'https://maps.googleapis.com/maps/api/place/nearbysearch/json?location=48.859294,2.347589&radius=50000&sensor=false&keyword=doctor&key=myapikeysecret'.$pagenext,
        ));

        if(!curl_exec($curl)){
            die('Error: "' . curl_error($curl) . '" - Code: ' . curl_errno($curl));
        }

        $resp = curl_exec($curl);
        $result = json_decode($resp, true) ;

        if(array_key_exists( 'status', $result  )  )
        {
            switch ($result['status'])
            {
                case "OK":
                    break;
                case "OVER_QUERY_LIMIT":
                    case "INVALID_REQUEST":
                    case "REQUEST_DENIED":
                    //echo $result['status'];
                    //exit;
                    break;
            }
        }

        print_r($result );

        if (array_key_exists('next_page_token', $result ) )
        {
            $pagenext = "&pagenex="+$result['next_page_token'];
        }else{
            $pagenext = "";
        }

        if($curl){curl_close($curl);}
        sleep(5);

    } catch (Exception $e) {
        if($curl){curl_close($curl);}
    }
}

?>

感谢

1 个答案:

答案 0 :(得分:0)

我建议使用sleep在调用之间等待线程?也许他们执行得太快并且达到了请求速度限制。大多数谷歌地图服务都有它们,但它们没有很好的记录。

希望这会有所帮助。