近接 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"
}
エラーの原因と解決方法が完全にはわかりません。