beaconinfo.getforobserved 始终返回空响应
beaconinfo.getforobserved always returning an empty response
这是我的请求。
POST https://proximitybeacon.googleapis.com/v1beta1/beaconinfo:getforobserved?key=<API_KEY>
具有 POST 数据
{
"observations": [
{
"advertisedId": {
"type": "EDDYSTONE",
"id": "XcM0h/AuR31AWAEXxV59Xw=="
},
"timestampMs": "2017-11-28T12:11:23.045123456Z"
}
],
"namespacedTypes": [
"*"
]
}
我检查了信标仪表板,看信标是否有任何附件。它有一个附近的通知附件,我想使用此方法获取它。
十六进制的 beaconID 是 5dc33487f02e477d40580117c55e7d5f
。
我参考了这个 guide 寻求帮助,但考虑到 namespacedTypes 应该是一个数组并且它在博客中是一个字符串,他们提出的请求似乎是错误的。
这是 API 的 documentation。
更新:
如果我执行 Proximity API list 附件调用,我会得到相同信标的以下结果
[
{
"data":"eyJ1cmwiOiAiaHR0cHM6Ly9xLmVkZHkucHJvLzhsMkl3SiIsICJkZXNjcmlwdGlvbiI6ICJTb21lIiwgInRpdGxlIjogIlNvbWUifQ==",
"creationTimeMs":"2017-12-01T18:15:37.418Z",
"attachmentName":"beacons/3!5dc33487f02e477d40580117c55e7d5f/attachments/58dad403-7a99-4085-b338-5fe0b6660abd",
"namespacedType":"com.google.nearby/en"
}
]
这是否意味着 beaconinfo:getforobserved
API 调用有问题?
我的理解是 getforobserved 无法获取附近的通知附件,只能获取 Beacon Dashboard 中 "Attachments" 部分下定义的附件(由命名空间、类型和值组成)。该文档说 getforobserved 接受 * 以指定客户端拥有的所有命名空间中的所有类型。对于附近的通知附件,命名空间是 com.google.nearby,它不属于客户端。这是我最好的理解,但我不是 100% 确定。
无论如何,我认为您的 getforobserved 请求是正确的。您可以通过以下任一方式验证请求是否正常工作:
1) 从 POST 数据中完全删除 "namespacedTypes"。在这种情况下,请求不会 return 任何附件,但它应该 return 信标信息,因此如果请求正常,你应该得到一个非空的答案。
2) 向信标添加附件(另一种类型而不是附近的通知)并查看请求是否 return 是什么。如果定义了 namespacedTypes 但没有附件,API 将 return 为空。
Android 设备如果在 phone 上启用,则可以自动获取附近的通知,因此通常不需要手动请求附近的附件。如果想通过API维护附近的通知附件,可以使用API提供的其他方法(如list方法)。如果您想扫描信标并获取附件,我会使用普通附件,它提供了更多的内容灵活性。
这是我的请求。
POST https://proximitybeacon.googleapis.com/v1beta1/beaconinfo:getforobserved?key=<API_KEY>
具有 POST 数据
{
"observations": [
{
"advertisedId": {
"type": "EDDYSTONE",
"id": "XcM0h/AuR31AWAEXxV59Xw=="
},
"timestampMs": "2017-11-28T12:11:23.045123456Z"
}
],
"namespacedTypes": [
"*"
]
}
我检查了信标仪表板,看信标是否有任何附件。它有一个附近的通知附件,我想使用此方法获取它。
十六进制的 beaconID 是 5dc33487f02e477d40580117c55e7d5f
。
我参考了这个 guide 寻求帮助,但考虑到 namespacedTypes 应该是一个数组并且它在博客中是一个字符串,他们提出的请求似乎是错误的。
这是 API 的 documentation。
更新:
如果我执行 Proximity API list 附件调用,我会得到相同信标的以下结果
[
{
"data":"eyJ1cmwiOiAiaHR0cHM6Ly9xLmVkZHkucHJvLzhsMkl3SiIsICJkZXNjcmlwdGlvbiI6ICJTb21lIiwgInRpdGxlIjogIlNvbWUifQ==",
"creationTimeMs":"2017-12-01T18:15:37.418Z",
"attachmentName":"beacons/3!5dc33487f02e477d40580117c55e7d5f/attachments/58dad403-7a99-4085-b338-5fe0b6660abd",
"namespacedType":"com.google.nearby/en"
}
]
这是否意味着 beaconinfo:getforobserved
API 调用有问题?
我的理解是 getforobserved 无法获取附近的通知附件,只能获取 Beacon Dashboard 中 "Attachments" 部分下定义的附件(由命名空间、类型和值组成)。该文档说 getforobserved 接受 * 以指定客户端拥有的所有命名空间中的所有类型。对于附近的通知附件,命名空间是 com.google.nearby,它不属于客户端。这是我最好的理解,但我不是 100% 确定。
无论如何,我认为您的 getforobserved 请求是正确的。您可以通过以下任一方式验证请求是否正常工作:
1) 从 POST 数据中完全删除 "namespacedTypes"。在这种情况下,请求不会 return 任何附件,但它应该 return 信标信息,因此如果请求正常,你应该得到一个非空的答案。
2) 向信标添加附件(另一种类型而不是附近的通知)并查看请求是否 return 是什么。如果定义了 namespacedTypes 但没有附件,API 将 return 为空。
Android 设备如果在 phone 上启用,则可以自动获取附近的通知,因此通常不需要手动请求附近的附件。如果想通过API维护附近的通知附件,可以使用API提供的其他方法(如list方法)。如果您想扫描信标并获取附件,我会使用普通附件,它提供了更多的内容灵活性。