Google Drive API V3 - Push-уведомления - PullRequest
0 голосов
/ 23 мая 2018

Со вчерашнего утра я застрял с запросом API Google Drive.

Как объяснено здесь: https://developers.google.com/drive/api/v3/push

Я пытаюсь подписаться на уведомления, отправляющие этот запрос:

Url: https://www.googleapis.com/drive/v3/changes/watch

Header :
Content-type: application/json
Authorization: Bearer my_auth_token

{
"id":"An ID generated",
"type":"web_hook",
"address":"my callback address",
}

Ответом является код 400 с этим телом:

{
 "error": {
  "errors": [
   {
    "domain": "global",
    "reason": "required",
    "message": "Required parameter: pageToken",
    "locationType": "parameter",
    "location": "pageToken"
   }
  ],
  "code": 400,
  "message": "Required parameter: pageToken"
 }
}

Этот параметр не требуется согласно этому запросу на подписку, но дляэтот (тот же URL): https://developers.google.com/drive/api/v3/reference/changes/watch

Я что-то упускаю / неправильно понимаю или есть проблема с документацией?

Спасибо

Ответы [ 2 ]

0 голосов
/ 16 июня 2018

Параметр pageToken - это токен для продолжения предыдущего запроса списка на следующей странице.Это должно быть установлено в значение 'nextPageToken' из предыдущего ответа или в ответ от метода getStartPageToken, как мы видим здесь .

Следовательно, вы должны передать pageTokenв качестве параметра для вашего URL:

Url: https://www.googleapis.com/drive/v3/changes/watch?pageToken=[YOUR_PAGE_TOKEN_NUMBER_HERE]

например: https://www.googleapis.com/drive/v3/changes/watch?pageToken=101

Может быть интересно использовать GET https://www.googleapis.com/drive/v3/changes/startPageToken для получения начальной страницыTokenдля просмотра и просмотра будущих изменений.Смотри здесь

0 голосов
/ 23 мая 2018

Вы можете быть смущены, проверяя документацию , если вы делаете запросы на просмотр, он должен быть под этим постом URL https://www.googleapis.com/apiName/apiVersion/resourcePath/watch, а не https://www.googleapis.com/drive/v3/changes/watch именно поэтому вы получаете сообщение об ошибке «Обязательный параметр: pageToken».

Вот полный код запроса на просмотр:

POST https://www.googleapis.com/drive/v3/files/fileId/watch
Authorization: Bearer auth_token_for_current_user
Content-Type: application/json

{
  "id": "01234567-89ab-cdef-0123456789ab", // Your channel ID.
  "type": "web_hook",
  "address": "https://yourdom.com/notifications", // Your receiving URL.
  ...
  "token": "target=myApp-myFilesChannelDest", // (Optional) Your channel token.
  "expiration": 1426325213000 // (Optional) Your requested channel expiration time.
}

Не забудьте зарегистрировать свой домен первый.Надеюсь, это поможет.

...