Android Google Drive Rest API:跳过同意屏幕(硬编码帐户)
我试图使用谷歌硬盘同步一些媒体文件(视频/图像),并在我的android应用程序中显示它们 我已经设法让一切都正常运行了,但是根据文档(或者至少从第一次阅读来看)它看起来总是有一个同意屏幕,用户在选择他的谷歌帐户后,同意应用程序从他的驱动器获取数据 关键是,我想“硬编码”一个在编程上同意这一点的帐户,因为我们的应用程序总是从同一个帐户接收媒体 这可能吗Android Google Drive Rest API:跳过同意屏幕(硬编码帐户),android,google-oauth,google-drive-android-api,Android,Google Oauth,Google Drive Android Api,我试图使用谷歌硬盘同步一些媒体文件(视频/图像),并在我的android应用程序中显示它们 我已经设法让一切都正常运行了,但是根据文档(或者至少从第一次阅读来看)它看起来总是有一个同意屏幕,用户在选择他的谷歌帐户后,同意应用程序从他的驱动器获取数据 关键是,我想“硬编码”一个在编程上同意这一点的帐户,因为我们的应用程序总是从同一个帐户接收媒体 这可能吗 PD:不要建议任何其他存储服务,驱动器是客户的要求。为了避免用户同意,您可以使用 链接中指出,Google API(如预测API和Google云
PD:不要建议任何其他存储服务,驱动器是客户的要求。为了避免用户同意,您可以使用 链接中指出,Google API(如预测API和Google云存储)可以代表您的应用程序运行,而无需访问用户信息。在这些情况下,您的应用程序需要向API证明自己的身份,但不需要用户同意。类似地,在企业场景中,应用程序可以请求对某些资源的委托访问 对于这些类型的服务器到服务器交互,您需要一个帐户,该帐户属于您的应用程序,而不是单个最终用户。您的应用程序代表服务帐户调用Google API,不需要用户同意。(在非服务帐户场景中,您的应用程序代表最终用户调用Google API,有时需要用户同意。) 您还可以查看此相关SO问题以了解更多信息
InputStream privateJsonStream = dashboardActivity.getResources().openRawResource(R.raw.driveserviceprivatekey);
GoogleCredential serviceCredential = GoogleCredential.fromStream(privateJsonStream).createScoped(Arrays.asList(SCOPES));
HttpTransport transport = AndroidHttp.newCompatibleTransport();
JsonFactory jsonFactory = JacksonFactory.getDefaultInstance();
this.mService = new com.google.api.services.drive.Drive.Builder(
transport, jsonFactory, null)
.setHttpRequestInitializer(credential)
.build();