0

我想使用 googleapis url 获取 timeZoneId。我希望这个 url 返回我的 json 响应,以便稍后解析它并在我的数据库中插入 lat 和 long。当它不是 googlemap url 时它可以正常工作,但是当我在代码中使用这种 url 时出现著名的“request_denied”错误:

如何从谷歌获取 url 中的 json,我想从纬度、经度和时间戳获取时区

https://maps.googleapis.com/maps/api/timezone/json?location=39.6034810,-119.6822510×tamp=1331766000&sensor=false

我尝试使用 file_get_contents 从 URL 获取数据。

$json_url = 'https://maps.googleapis.com/maps/api/timezone/json?location=39.6034810,-119.6822510&timestamp=1331766000&sensor=false';
$json = file_get_contents($json_url);
$obj = json_decode($json);
echo $obj->timeZoneId;

但它不起作用。它总是返回“status”:“REQUEST_DENIED” 谢谢任何人得到提示。

更新

谢谢大家 :) 我签入了 php extension-> php_openssl并且它工作

4

3 回答 3

2

您忘记了s网址中的:

$json_url = 'https://maps.googleapis.com/maps/api/timezone/json?location=39.6034810,-119.6822510&timestamp=1331766000&sensor=false';
$json = file_get_contents($json_url);
$obj = json_decode($json);
echo $obj->timeZoneId;

这适用于我的电脑。

于 2013-06-01T16:03:39.967 回答
1

更改您的网址:

$json_url = 'http://maps.googleapis.com/maps/api/timezone/json?location=39.6034810,-119.6822510&timestamp=1331766000&sensor=false';

对此:

$json_url = 'https://maps.googleapis.com/maps/api/timezone/json?location=39.6034810,-119.6822510&timestamp=1331766000&sensor=false';

使用http,您将获得 REQUEST_DENIED。

于 2013-06-01T16:05:34.147 回答
1
    $json_url = 'https://maps.googleapis.com/maps/api/timezone/json?location=39.6034810,-119.6822510&timestamp=1331766000&sensor=false'; 

    $json = file_get_contents($json_url);
    $data = json_decode($json, TRUE);
    echo $data['timeZoneId'];

试试这个,我认为这可能会有所帮助。问题在于 json_decode。

于 2013-06-01T16:02:21.817 回答