Мое приложение использует учетную запись службы OAuth2 для копирования файла с Google Диска. Я использую клиентское приложение Google Drive api через Java, чтобы получить объект "Диск" с запрошенной областью действия " https://www.googleapis.com/auth/drive". Я могу сделать копию документа Документов Google, но thumbnailLink не может быть восстановлен. Я получаю ошибку 403 Forbidden. Я уверен, что это ошибка на стороне Google. Если я поставлю точку останова в своем коде на строке, которая получит 403 Forbidden result, я могу (при входе в систему как пользователь, с которого я копирую Google), используйте значок thumbnailLink, чтобы получить миниатюру в моем браузере.
Здесь приведенный фрагмент кода, который я использую, где sourceFile - com.google.api.services.drive.model.File, который копируется, и sourceDrive - com.google.api.services.drive.Drive, о котором я упоминал выше:
File newFile = new File();
newFile.setTitle( sourceFile.getTitle() );
newFile.setDescription( sourceFile.getDescription() );
newFile.setParents( sourceFile.getParents() );
File copiedFile = sourceDrive.files().copy( sourceFile.getId(), newFile ).execute();
String thumbnailLink = copiedFile.getThumbnailLink();
HttpRequest request = sourceDrive.getRequestFactory().buildGetRequest( new GenericUrl( thumbnailLink ) );
HttpResponse response = request.execute();
Как упоминалось выше, строка request.execute() создает исключение из-за возвращаемой ошибки 403. Если я поставил точку останова в последней строке фрагмента кода выше, я могу взять файл thumbnailLink и вставить его в свой браузер, который входит в систему как пользователь, чей диск копируется, и он возвращает миниатюру, успешно возвращенную.