0

这是我的要求。

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.

我参考了本指南寻求帮助,但考虑到 namespacedTypes 应该是一个数组并且它是博客中的一个字符串,他们提出的请求似乎是错误的。

这是 API 的文档

更新:

如果我进行 Proximity API列表附件调用,我会得到相同信标的以下结果

[  
   {  
      "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:getforobservedAPI 调用有问题?

4

1 回答 1

1

我的理解是 getforobserved 无法获取附近的通知附件,而只能获取 Beacon Dashboard 中“附件”部分下定义的附件(由命名空间、类型和值组成)。文档说 getforobserved 接受 * 来指定客户端拥有的所有命名空间中的所有类型。对于附近的通知附件,命名空间是 com.google.nearby,它不属于客户端。这是我最好的理解,但我不是 100% 确定。

无论如何,您的 getforobserved 请求对我来说看起来是正确的。您可以通过以下任一方式验证请求是否正常工作:

1) 从 POST 数据中完全删除“namespacedTypes”。在这种情况下,请求不会返回任何附件,但它应该返回信标信息,因此如果请求正常,您应该得到一个非空答案。

2)向信标添加附件(其他类型而不是附近的通知),并查看请求是否返回某些内容。如果定义了 namespacedTypes 但没有附件,API 将返回空。

如果 Android 设备在手机上启用,它们可以自动获取附近的通知,因此通常不需要手动请求附近的附件。如果要通过API维护附近的通知附件,可以使用API​​中提供的其他方法(如list方法)。如果您想扫描信标并获取附件,我会使用普通附件,它为内容提供了更大的灵活性。

于 2017-12-05T15:38:22.320 回答