我的应用程序使用OAuth2服务帐户从用户的Google云端硬盘复制文件.我正在通过Java使用Google云端硬盘客户端API来获取所请求范围为" https://www.googleapis.com/auth/drive " 的云端硬盘对象.我可以复制Google Docs文档,但thumbnailLink不可检索.我收到403 Forbidden错误.我非常有信心这是Google方面的一个错误.如果我在我的代码中设置一个断点来获取403 Forbidden结果,我可以(当我正在复制Google Drive的用户登录时)使用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();
Run Code Online (Sandbox Code Playgroud)
如上所述,request.execute()行由于返回403 Forbidden错误而产生异常.如果我在上面的代码片段的最后一行放置一个断点,我可以将thumbnailLink粘贴到我的浏览器中,该浏览器以正在复制其驱动器的用户身份登录并成功返回缩略图.
我已经为Google Apps Marketplace(GAMv2)创建了一个测试列表,并指定了一个设置网址.使用"TEST INSTALL FLOW"按钮进行测试时,会弹出授权屏幕,单击"Accept"按钮会弹出一个确认已添加应用程序的弹出窗口.在第二个弹出窗口中有一个"启动应用程序"按钮和一个"管理应用程序"链接."启动应用程序"按钮转到我在列表定义中输入的设置URL.
是不是安装流程应该自动重定向?我已经看到了其他问题,这种行为似乎正在起作用:
市场文档中还有这个页面,说它应该重定向:https: //developers.google.com/google-apps/marketplace/eap/oauthwalkthrough
其他人有这个问题吗?