首页 > 解决方案 > Google Drive Android API OAuth 身份验证问题 - onActivityResult 返回“0”

问题描述

我只是想对 Android Drive API 进行身份验证。

我从 Android Studio 生成了签名的 APK。该帐户已通过身份验证,并且 Google Drive API 身份验证与此生成的 APK 完美配合。

现在,当我将相同的 APK上传到 Play Console 中的内部测试时。然后认证失败。

__现在这就是我做这一切的方法__

1) 在 Android Manifest 中添加以下内容

<uses-permission android:name="android.permission.GET_ACCOUNTS" />

2)像这样实现身份验证

public abstract class AuthActivityStackOverflow extends BaseActivity {

    protected static final int GOOGLE_SIGN_IN_REQUEST_CODE = 1;

    public void signIn() {
        startActivityForResult( getGoogleSignInClient().getSignInIntent(), GOOGLE_SIGN_IN_REQUEST_CODE);
    }

    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
        if (requestCode == GOOGLE_SIGN_IN_REQUEST_CODE) {
            if (resultCode == RESULT_OK) {
                onSignInSuccess(GoogleSignIn.getLastSignedInAccount(this), requestCode);
                showMessage("Account Linked Successfully");
            } else { onSignInFailed(); }
        }
    }

    protected GoogleSignInClient getGoogleSignInClient(){
        GoogleSignInOptions signInOptions = new GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN)
                .requestScopes(Drive.SCOPE_APPFOLDER)
                .requestEmail()
                .build();
        return GoogleSignIn.getClient(this, signInOptions);
    }
}

3) 我生成了调试密钥 SHA1 并使用 API 控制台注册了凭据,然后测试了应用程序。它在这里工作。(onActivityResult 返回 RESULT_OK)

4) 现在我生成了生产密钥 SHA1 并使用 API 控制台注册了凭据,并从 Android Studio 生成了最终签名的 APK 并在我的物理设备上进行了测试。它仍在工作。(onActivityResult 返回 RESULT_OK)

5) 现在我将这个最终的生产 APK 发布到 Play Console 中的内部测试。

6)现在,当我下载此应用程序并运行此身份验证时。它失败了,现在它不起作用。(onActivityResult 返回"0"

有什么我想念的吗。

标签: javaandroidauthenticationoauth-2.0google-drive-android-api

解决方案


有一种方法可以使用Google Drive API授权您的 android 应用程序

由于与 Google Play 服务的集成,Android 上的授权请求不同于其他授权工作流程。

与其他工作流程不同,Android 上的授权使用SHA1 指纹和包名称来识别您的应用,而不是使用client IDclient secret.

您必须遵循正确的授权流程才能在 Play 控制台中测试您的 APK。

这是生成签名证书指纹和注册应用程序的指南。


推荐阅读