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方法)。如果您想扫描信标并获取附件,我会使用普通附件,它提供了更多的内容灵活性。