Я использую Google Drive API для доступа к файлам на моем командном диске.Мое серверное приложение использует OAuth2 для получения токена доступа.Затем я использую этот токен в качестве токена Bearer для вызовов API-дисков.Когда я пытаюсь загрузить образ с моего командного диска, один из файлов, перечисленных при вызове конечной точки https://www.googleapis.com/drive/v3/files:
{
"id": "<longAlphaNumericID>",
"mimeType": "image/jpeg",
"webContentLink": "https://drive.google.com/a/<myTeamDriveDomain>/uc?id=SOME_GOOGLE_DRIVE_ID&export=download",
"fileExtension": "jpg",
"size": "108794"
}
Когда я пытаюсь загрузитьwebContentLink с тем же маркером Bearer в заголовках запроса, я перенаправлен на https://doc -0k-08-docs.googleusercontent.com / docs / securesc / ...
Токен на предъявителя, похоже, не работает для этого домена googleusercontent.com, и мой сервер в конечном итоге перенаправляется на страницу входа (что не подходит для серверного приложения).
При попытке сделать этот второйзапрос, я заметил, что заголовки ответа содержат:
Access-Control-Allow-Origin: *
Access-Control-Allow-Credentials: false
Access-Control-Allow-Methods: GET,OPTIONS
P3P: CP="This is not a P3P policy! See http://www.google.com/support/accounts/answer/151657?hl=en for more info."
Я предполагаю, что этот последний заголовок указывает мне на проблему, и он как-то связан с перенаправлением, идущим в другой домен, но я не уверен, что мне нужно с этим делать.Я думал, что токен доступа, предоставленный через OAuth2 с соответствующей областью, должен позволить мне делать все.Кажется, он работает для всего остального (доступ к электронным таблицам, документам и т. Д.), Но у меня возникают трудности с загрузкой изображений таким образом.
Вот подробный список запросов и ответов:
- Запрос: вызов OAuth2 для получения токена доступа с моим идентификатором клиента и секретом.
- Ответ: Получен токен доступа.Хорошо
- Запрос:
https://www.googleapis.com/drive/v3/files?corpora=teamDrive&includeTeamDriveItems=true&supportsTeamDrives=true&teamDriveId=[myTeamDriveID]
с токеном авторизации в заголовке. - Ответ.Статус 200. Получен список файлов.Потрясающе.
- Для каждого изображения запрашивайте webContentLink с токеном авторизации в заголовке
- Запрос:
https://drive.google.com/a/[myTeamDriveDomain]/uc?id=[fileID]&export=download
- Ответ: Состояние 302 с заголовком P3P
CP="This is not a P3P policy!
Перенаправлено наhttp://docs.google.com/a/[myTeamDriveDomain]/nonceSigner?nonce=[alphaNumericID]&continue=https://doc-0g-08-docs.googleusercontent.com/docs/securesc/[longAlphaNumericID]/[longAlphaNumericID]/[longNumericID]/[longNumericID]/[longNumericID]/[longAlphaNumericID]?e%3Ddownload%26h%3D[longNumericID]&hash=[hashValue]
- Запрос: Получить URL перенаправления из предыдущего ответа с токеном авторизации в заголовке
- Ответ: Статус 302. Перенаправлен на
https://www.google.com/a/]myTeamDriveDomain]/ServiceLogin?passive=1209600&osid=1&continue=[previousRedirectURL]&followup=[previousRedirectURL]
- Запрос: Получить URL перенаправленияпредыдущий ответ с токеном авторизации в заголовке
- Ответ: Статус 200. Это страница входа.Во время отладки, если я введу свои учетные данные, я получу изображение, но сервер не может сделать это.Нужно уметь использовать токены доступа
Есть идеи, что я делаю не так?