Google 接近度 API Returns pageToken 查询 500 内部错误

Google Proximity API Returns 500 Internal Error on pageToken Query

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

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

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

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

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

获得后续页面结果的正确方法是按照您的描述使用 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"
  }
}

```

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

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

现在使用具有相同 Oauth2 凭据的 official java client 我可以可靠地迭代 20,000 多个信标(pageSize 1000)所以我可能错过了一些参数编码和 API 确实有效。

在这个问题上浪费了几个小时(发送 post 带有空请求正文的请求到 activate/deactivate 信标的其他问题...),我的团队选择使用很棒的 Google Proximity Beacon API Client它解决了所有这些问题,并为您提供更好的体验、模型和功能。

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