我希望我的应用能够从预定义的共享公共 Google Drive 文件夹中读取数据,而无需用户登录或选择 Google 帐户。
背景/环境
使用我的桌面浏览器,我在我的 Google Drive 上创建了一个设置为公开的公共文件夹。知道链接的任何人都可以访问(读取)驱动器,因此不需要授权:在我的 Android Studio 项目中,我已经进入File > Project Structure > Dependencies
并添加了com.google.android.gms:play-services-drive:10.2.0
我现在有能力创建一个new GoogleApiClient.Builder()
.
问题
我查看了各种示例,但在大多数情况下,驱动器是由 Android 应用程序创建的。这不是我想要处理的情况。这个问题是关于访问已使用“文件夹 ID”或您0B6X74x23H....
在文件夹最初共享和公开时分配的任何名称公开的驱动器。
我已经检查了Google 提供的演示代码,但大概不是公共文件夹,因为它说:
...需要注册 OAuth 2.0 客户端
至少,我可以通过使用 http-client 来驱动该过程,https://drive.google.com/drive/folders/0B6X74x23Hx7DNE13M0ZIbVI....?usp=sharing
无需身份验证即可访问共享链接,并且无需跳过箍。但是,当然,使用定义的 API 并简单地指定公共共享文件夹以列出内容并在需要时从公共文件夹下载文件会更简洁。
当我尝试这段代码时:
Scope publicFolder = new Scope(EXISTING_FOLDER_ID);
mGoogleApiClient = new GoogleApiClient.Builder(mActivity)
.addApi(Drive.API)
.addScope(publicFolder)
.addConnectionCallbacks(this)
.addOnConnectionFailedListener(this)
.build();
mGoogleApiClient.connect();
此方法触发:
GoogleApiClient.OnConnectionFailedListener.onConnectionFailed()
结果包含statusCode=SIGN_IN_REQUIRED
. 但当然,公开文件夹不需要登录。