Drive API v3 的 Google Oauth2 范围请求不起作用

Posted

技术标签:

【中文标题】Drive API v3 的 Google Oauth2 范围请求不起作用【英文标题】:Google Oauth2 scope request for Drive API v3 doesn't work 【发布时间】:2021-05-01 13:37:32 【问题描述】:

在我的应用程序中,我需要请求 Drive API v3 受限范围驱动器。

我设法构建了请求 Email SignInOption,但是当它到达 Scope 请求时,它只会在加载页面上冻结。我尝试了多种类型的范围,但它仍然不起作用。如果我取出 requestScopes 部分,它会完美运行

这是我请求登录的代码

    // Request Google Sign In to user
            
public void requestSignIn () 

            Log.i("UploadFileActivity", "requestUserSignIn");

             
            GoogleSignInOptions signInOptions = new GoogleSignInOptions
                    .Builder(GoogleSignInOptions.DEFAULT_SIGN_IN)
                    .requestScopes(new Scope(DriveScopes.DRIVE))
                    .requestEmail().build()


            // it prints thi, but still doesnt request the scopes
            Log.i("UploadFileActivity", "requestUserSignIn");

            GoogleSignInClient client = GoogleSignIn.getClient(this, signInOptions);

            startActivityForResult(client.getSignInIntent(), 2);
    

这是我的毕业典礼

// drive api dependencies
    implementation 'com.google.http-client:google-http-client-gson:1.26.0'
    implementation('com.google.api-client:google-api-client-android:1.26.0') 
        exclude group: 'org.apache.httpcomponents'
    
    implementation('com.google.apis:google-api-services-drive:v3-rev136-1.25.0') 
         exclude group: 'org.apache.httpcomponents'
    
    implementation 'com.google.oauth-client:google-oauth-client-jetty:1.23.0'
    implementation fileTree(dir: 'libs', include: ['*.jar'])
    implementation 'pub.devrel:easypermissions:0.3.0'

    implementation 'com.google.android.gms:play-services-drive:17.0.0'
    implementation 'com.google.api-client:google-api-client:1.30.10'
    implementation 'com.google.android.gms:play-services-auth:19.0.0'

有人知道可能导致此错误的原因吗?

编辑: 我看到有一个关于这样一个问题的跟踪报告: https://issuetracker.google.com/issues/178183308

【问题讨论】:

【参考方案1】:

终于找到答案了!在 Google API 控制台中,只需将同意屏幕从测试状态中移除并发布即可

从: https://***.com/a/65900011/14990708

【讨论】:

以上是关于Drive API v3 的 Google Oauth2 范围请求不起作用的主要内容,如果未能解决你的问题,请参考以下文章

Google Drive API v3-将文档转换为pdf

如何通过 Google Drive .NET API v3 使用服务帐户访问 Team Drive

Google Drive API v3:没有任何方法可以获取 google 文档的下载 url?

Google Drive API v3 Python文件中缺少某些文件()。list()

文件移动 Google Drive API v3 PHP

如何在使用Google Drive API V3与他人共享时设置文件的功能?