0

近接 API を使用してビーコンを正常に登録し、アクティブなビーコンを一覧表示すると確認できますが、更新メソッドを使用してビーコン情報を変更することはできません。

これが成功した登録パックです

{
  "beaconName": "beacons/3!6564643165626561653336383637373435326335",
  "advertisedId": {
    "type": "EDDYSTONE",
    "id": "ZWRkMWViZWFlMzY4Njc3NDUyYzU="
  },
  "status": "ACTIVE",
  "latLng": {
    "latitude": <removed>,
    "longitude": <removed>
  }
}

リスト アクション GET https://proximitybeacon.googleapis.com/v1beta1/beaconsの結果は次のとおりです。

{
  "beacons": [
    {
      "beaconName": "beacons/3!6564643165626561653336383637373435326335",
      "advertisedId": {
        "type": "EDDYSTONE",
        "id": "ZWRkMWViZWFlMzY4Njc3NDUyYzU="
      },
      "status": "ACTIVE",
      "latLng": {
        "latitude": <removed>,
        "longitude": <removed>
      }
    }
  ]
}

ただし、PUT を呼び出して更新しようとすると、400 PUT /v1beta1/beacons/3%216564643165626561653336383637373435326335 が返されます

{
  "error": {
    "code": 400,
    "message": "Invalid JSON payload received. Unknown name \"{  \"status\": \"ACTIVE\",  \"latLng\": {    \"latitude\": <removed>,    \"longitude\": <removed>  }}\": Cannot bind query parameter. Field '{  \"status\": \"ACTIVE\",  \"latLng\": {    \"latitude\": -35' could not be found in request message.",
    "status": "INVALID_ARGUMENT",
    "details": [
      {
        "@type": "type.googleapis.com/google.rpc.BadRequest",
        "fieldViolations": [
          {
            "description": "Invalid JSON payload received. Unknown name \"{  \"status\": \"ACTIVE\",  \"latLng\": {    \"latitude\": <removed>,    \"longitude\": <removed>  }}\": Cannot bind query parameter. Field '{  \"status\": \"ACTIVE\",  \"latLng\": {    \"latitude\": -35' could not be found in request message."
          }
        ]
      }
    ]
  }
}

パッケージ自体は至ってシンプル

{
  "status":"ACTIVE",
  "latLng": {
    "latitude": <removed>,
    "longitude": <removed>
  },
  "indoorLevel": {
    "name": "4"
  },
  "status": "PORTABLE"
}

エラーの原因と解決方法が完全にはわかりません。

4

2 に答える 2