Drive API v2 & v3 (1.16) запросы на просмотр файлов отклоняются при использовании пакетного запроса


Я получаю 403 ошибки watchDenied, когда я пытаюсь сделать запросы File Watch в пакетном запросе. Посылать их нормально-это нормально. Я предполагаю, что пакетирование запросов на просмотр файлов разрешено?

Дополнительная информация: если я задаю неверный адрес, я получаю обычно недопустимую ошибку адреса webhook, а если я задаю фиктивный идентификатор файла, я получаю 404, поэтому не чувствую, что запрос, который я делаю, неправильный.

Пример кода (с использованием клиентской библиотеки C#):

var request = new BatchRequest(service);
request.Queue<Channel>(service.Files.Watch(
    new Channel
    {
        Id = [Guid being used],
        Type = "web_hook",
        Address = [notification endpoint],
        Token = [token being used],
        Expiration = DateTime.Now.AddHours(1).ToUnixTimeMilliseconds()
    }, fileId)
    , (content, error, i, message) =>
    {

    }
);
await request.ExecuteAsync();

API Запрос

Заголовки:

POST: https://www.googleapis.com/batch
User-Agent: OverDRIVE google-api-dotnet-client/1.16.0.0 (gzip)
Authorization: Bearer [token]
Content-Type: multipart/mixed; boundary="8d7a0653-4d9b-4c09-b701-9794341f882d"
Host: www.googleapis.com
Content-Length: 988
Accept-Encoding: gzip, deflate

Тело:

--8d7a0653-4d9b-4c09-b701-9794341f882d
Content-Type: application/http

POST https://www.googleapis.com/drive/v2/files/[fileId]/watch
Content-Type: application/json; charset=utf-8
Content-Length:  241

{"address":"[notification endpoint]","expiration":1474036096103,"id":"938bd983-b071-4e63-8535-f20d7f39e248","token":"[token being used]","type":"web_hook"}

--8d7a0653-4d9b-4c09-b701-9794341f882d
Content-Type: application/http

POST https://www.googleapis.com/drive/v2/files/[fileId]/watch
Content-Type: application/json; charset=utf-8
Content-Length:  241

{"address":"[notification endpoint]","expiration":1474036096105,"id":"79303874-5f6c-49aa-a601-93950895ac0f","token":"[token being used]","type":"web_hook"}

--8d7a0653-4d9b-4c09-b701-9794341f882d--    

Пример ошибки

{
 "error": {
  "errors": [
   {
    "domain": "push",
    "reason": "watchDenied",
    "message": "Watch request denied by backend"
   }
  ],
  "code": 403,
  "message": "Watch request denied by backend"
 }
}       
1 2

1 ответ:

Получил обновление от команды поддержки разработчиков для билета, который я им отправил.

К сожалению, запросы на наблюдение, как известно, в значительной степени несовместимы с Привод пакетных запросов. Наша приводная команда рекомендовала сделать часы запросы отдельно от других запросов.