google-drive-api - 无法使用 Google Drive API 获取缩略图

标签 google-drive-api google-oauth google-apps-marketplace

我的应用程序正在使用 OAuth2 服务帐户从用户的 Google 云端硬盘复制文件。我通过 Java 使用 Google Drive 客户端 api 来获取请求范围为“https://www.googleapis.com/auth/drive ”的 Drive 对象。我可以复制 Google 文档文档,但缩略图链接不可检索。我收到 403 禁止错误。我非常有信心这是谷歌方面的一个错误。如果我在获取 403 Forbidden 结果的代码中放置一个断点,我就可以(当以我从中复制内容的 Google 云端硬盘的用户身份登录时)使用thumbnailLink 在浏览器中获取缩略图。

这是我正在使用的代码的重写片段,其中 sourceFile 是从中复制的 com.google.api.services.drive.model.File,sourceDrive 是 com.google.api.services.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 Forbidden 错误而产生异常。如果我在上面代码片段的最后一行放置一个断点,我就可以获取缩略图链接并将其粘贴到以从中复制驱动器的用户身份登录的浏览器中,并且成功返回缩略图。

最佳答案

您可以使用

创建缩略图链接

https://drive.google.com/thumbnail?id={YOUR_IMAGE_FILE_ID}

默认情况下,将返回 220 px 的缩略图(max-width-220px max-height-220px,保持宽高比)

您可以通过链接发送更多参数,例如宽度、高度 然后我们需要使用 'sz' 查询字符串 https://drive.google.com/thumbnail?sz=w100-h100&id={YOUR_IMAGE_FILE_ID}

这里sz=w100-h100表示​​高度100px,宽度100px。你也可以通过他们中的任何一个。 如果您同时发送高度和宽度,则必须确定这些值是否保持图像的原始宽高比。

关于google-drive-api - 无法使用 Google Drive API 获取缩略图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23548871/

相关文章:

javascript - 如何在 Firefox 或 Chrome 中模拟文本框的按键?

iphone - iOS Google Drive sdk 集成和权限

android - 从 Google 云端硬盘文件中读取文本

java - 我是否必须在访问公共(public)工作表的 Java 客户端应用程序中使用默认的 google API 身份验证?

java - 谷歌应用管理 API : need to specify account user for service account?

android - 被黑的 Android 应用程序 - 如何找到源站点或市场?

python - 了解如何通过 Python 使用 Google API 客户端库

google-oauth - Cypress 未捕获 :exception handler not working with Magic. 链接流

google-app-engine - oauth2client 如何与 AppEngine 用户库 (GAE Python) 配合使用

google-api - 使用服务帐户和授权委托(delegate)调用 Google API 时模拟当前用户