3

Google 是否更改了他们的 GeoLocation api 并且没有更新文档?

我一直在逐字跟踪他们的示例代码

https://developers.google.com/maps/documentation/geolocation/intro

我将示例请求粘贴到我系统上名为 ex.json 的文件中。我仔细检查了我的 Google Maps Geolocation API 是否设置为 on 并执行了以下 curl 命令

curl -d ex.json -H "Content-Type: application/json" -i "https://www.googleapis.com/geolocation/v1/geolocate?key=[My key, yes I pasted my actual key in]"

我收到以下回复

{
 "error": {
  "errors": [
   {
    "domain": "global",
    "reason": "parseError",
    "message": "Parse Error"
   }
  ],
  "code": 400,
  "message": "Parse Error"
 }
}

根据文档,这意味着他们提供的示例 json 有问题。只是为了完整性,示例 json 看起来像

{
 "homeMobileCountryCode": 310,
 "homeMobileNetworkCode": 260,
 "radioType": "gsm",
 "carrier": "T-Mobile",
 "cellTowers": [
  {
   "cellId": 39627456,
   "locationAreaCode": 40495,
   "mobileCountryCode": 310,
   "mobileNetworkCode": 260,
   "age": 0,
   "signalStrength": -95
  }
 ],
 "wifiAccessPoints": [
  {
   "macAddress": "01:23:45:67:89:AB",
   "signalStrength": 8,
   "age": 0,
   "signalToNoiseRatio": -65,
   "channel": 8
  },
  {
   "macAddress": "01:23:45:67:89:AC",
   "signalStrength": 4,
   "age": 0
  }
 ]
}

JsonLint 验证它是正确的 Json,并且文档说所有字段都是可选的。我错过了什么,在编写文档后是否添加了一些必填字段?

4

2 回答 2

2

Curl 需要“-X POST”作为额外参数。像这样工作:

curl 'https://www.googleapis.com/geolocation/v1/geolocate?key=YOURKEY' -X POST -H "Content-Type: application/json" -d @yourjsonfile.json
于 2016-06-02T15:09:23.633 回答
1

找到了解决方案,这是一个愚蠢的错误:-

我的文件名是“sampledata.json”我把它改成了“@sampledata.json”

我尝试了三种不同的 curl 命令。我得到了回应。

于 2016-10-27T00:32:54.203 回答