尝试注册 Google Drive webhook 时出现“必需参数:pageToken”错误

Xåp*_* - 6 post google-api webhooks http-status-code-400 google-drive-api

按照此处的指南,我正在尝试设置 Google Drive“推送通知”(网络钩子),以便我可以观察所有文件更改。我需要发送一次性 POST 请求https://www.googleapis.com/drive/v3/changes/watch以初始“注册”网络钩子。但我似乎无法成功地做到这一点;使用curl我收到400 Bad Request回复。

这是我的 HTTP 请求,通过curl

curl 'https://www.googleapis.com/drive/v3/changes/watch' \
-X POST \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer access_token' \
--data-binary '{"id": "webhook", "type": "web_hook", "address": "https://example.com/webhooks", "token": "example"}' \
-vvvv
Run Code Online (Sandbox Code Playgroud)

响应:

{
 "error": {
  "errors": [
   {
    "domain": "global",
    "reason": "required",
    "message": "Required parameter: pageToken",
    "locationType": "parameter",
    "location": "pageToken"
   }
  ],
  "code": 400,
  "message": "Required parameter: pageToken"
 }
}
Run Code Online (Sandbox Code Playgroud)

我从pageToken哪里得到它?另外,我如何将它包含在请求中(例如作为标头)?指南中没有提到它。

DaI*_*mTo 6

直接从文档

更改: watch订阅用户的更改。
必需的查询参数
pageToken string

用于在下一页上继续上一个列表请求的令牌。这应该设置为来自上一个响应的“nextPageToken”值或来自getStartPageToken方法的响应。

如果这是第一个请求,那么您将需要使用 getStartPageToken 方法来获取第一个令牌,然后页面令牌将成为响应的一部分。

  • 谢谢!奇怪的是,指南中没有提到这一点。为什么我需要一个 `pageToken` 来创建 webhook?我认为只有返回分页数据的 [list](https://developers.google.com/drive/v3/reference/changes/list) 端点才需要......?非常奇怪和不直观。 (3认同)
  • 我还想知道为什么需要pageToken? (2认同)