带有cURL的Google Geocoding API请求被拒绝。我有一个与启用了结算功能的项目关联的API密钥

时间:2019-07-03 00:38:58

标签: google-maps curl google-maps-api-3 google-api google-geocoding-api

我正尝试通过以下方式访问Google的地理编码API:

卷曲https://maps.googleapis.com/maps/api/geocode/json?address=1600+Amphitheatre+Parkway,+Mountain+View,+CA&key=XXX

我得到以下信息:

  

{“ error_message”:您必须使用API​​密钥来验证对Google Maps Platform API的每个请求。有关其他信息,请参阅http://g.co/dev/maps-no-account“,   “结果”:[],   “状态”:“ REQUEST_DENIED”}

我传递给他们的密钥与启用了Geocoding和Places API的项目相关联,并且该项目也启用了计费。

1 个答案:

答案 0 :(得分:0)

我认为外壳正在干扰您查询中的某些字符。如果您使用bash或类似的shell,它对我来说可以用单引号或双引号将查询地址括起来。例如:

curl 'https://maps.googleapis.com/maps/api/geocode/json?address=1600+Amphitheatre+Parkway,+Mountain+View,+CA&key=XXX'
{
   "results" : [
      {
         "address_components" : [
            {
               "long_name" : "1600",
               "short_name" : "1600",
               "types" : [ "street_number" ]
...

为了更加方便,您可以将键存储在Shell环境变量中,并在外壳中使用双引号将其扩展到查询中。这是我的工作:

export GOOGLE_MAPS_API_KEY=XXX
curl "https://maps.googleapis.com/maps/api/geocode/json?address=1600+Amphitheatre+Parkway,+Mountain+View,+CA&key=${GOOGLE_MAPS_API_KEY}"