2

我正在尝试列出使用我的 OAuth 密钥注册的信标数量,但一次只能收到 10 个。我正在像这样构建我的 HTTP 请求:

https://proximitybeacon.googleapis.com/v1beta1/beacons

我试图将 maxResults 设置为大于检索到的信标总数 (?maxResults=20),但这总是返回 400 Bad Request 错误(maxResults 未知)。当我尝试使用 pageToken=[KNOWN NEXT PAGE TOKEN] 时,我收到 500 内部错误。

如果无法使用其中任何一个,我就无法看到前 10 个信标。任何帮助将不胜感激!

编辑:根据文档,这些参数似乎不适用于 Proximity API。我不确定这是否正确,因为这意味着不可能列出前 10 个返回的信标。

4

3 回答 3

2

获取后续结果页面的正确方法是使用pageToken您描述的参数。虽然我相信我之前已经看过这项工作,但我已经验证 API 当前正在为此返回 500 错误。(请参阅下面的测试结果。)这似乎是一个服务器端问题。

curl 'https://proximitybeacon.googleapis.com/v1beta1/beacons?pageSize=3' -H 'Authorization: Bearer MY_SECRET_OAUTH_TOKEN_HERE'
{
  "beacons": [
    {
      ...
    },
    {
      ...
    },
    {
      ...
    }
  ],
  "nextPageToken": "Civ55nT/+//+zN7Pzs/Nz8zPy8/Kz8nPyM/Hz8bPns+dz5zPm8+ayMmdnf/+EAMhko+M85V85JMx00LwZ+bdJe8xuNeGz7eSTJAxP86ZtGulO0o5AQAEAIsZAABQAFoLCcck85hsjQ0JEAE",
  "totalCount": "5"
}

$ curl 'https://proximitybeacon.googleapis.com/v1beta1/beacons?pageSize=3&pageToken=Civ55nT/+//+zN7Pzs/Nz8zPy8/Kz8nPyM/Hz8bPns+dz5zPm8+ayMmdnf/+EAMhko+M85V85JMx00LwZ+bdJe8xuNeGz7eSTJAxP86ZtGulO0o5AQAEAIsZAABQAFoLCcck85hsjQ0JEAE' -H 'Authorization: Bearer MY_SECRET_OAUTH_TOKEN_HERE'
{
  "error": {
    "code": 500,
    "message": "Internal error encountered.",
    "status": "INTERNAL"
  }
}

```

于 2016-02-05T19:02:00.920 回答
2

在这个问题上浪费了几个小时后(发送带有空请求正文的发布请求以激活/停用信标的其他问题......),我的团队选择使用神话般的Google Proximity Beacon API 客户端,它解决了所有这些问题并为您提供了很多更好的体验、模型和功能。

请注意,按页面列出的大型列表和小型信标仍然存在一些问题:20 000 个信标,100 个/页,1000 个模拟 ==> ~80% 已完成

于 2016-10-19T14:38:05.577 回答
1

在开发自定义客户端时,我遇到了同样的 500 错误,因为 json 中提供的 pageToken 不是 url 安全的:您需要在将令牌作为 url 参数提供之前对令牌进行 url 编码。

然后分页工作不可靠:在几个小页面(pageSize 10-100)或第二个大页面(pageSize 1000)之后随机出现 400 个错误。

现在使用具有相同 Oauth2 凭据的官方 java 客户端,我可以可靠地迭代 20,000 多个信标(pageSize 1000),所以我可能错过了参数编码的一些内容,并且 API 确实有效。

于 2016-10-17T19:02:04.243 回答