代码之家  ›  专栏  ›  技术社区  ›  kanudo

Google Drive Android API OAuth身份验证问题-onActivityResult返回“0”

  •  3
  • kanudo  · 技术社区  · 6 年前

    我只是想验证Android驱动器API。

    我从Android工作室生成了签名APK。帐户得到认证,googledriveapi认证与生成的APK完美结合。

    现在当我上传这个 相同的APK

    __我就是这样做的__

    <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返回结果\u OK)

    4) 现在,我生成了生产密钥SHA1,并在API控制台中注册了凭据,从androidstudio生成了最终签名的APK,并在我的物理设备上进行了测试。 它还在工作。 (onActivityResult返回结果\u OK)

    5) 现在,我在Play Console中发布了这个最终产品APK以进行内部测试。

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

    有什么我遗漏的吗。

    2 回复  |  直到 6 年前
        1
  •  5
  •   Jessica Rodriguez    6 年前

    有一种方法 authorize your android apps 使用 谷歌硬盘API

    在Android上授权请求不同于其他授权 与Google Play服务集成 .

    SHA1 client ID client secret

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

    这里有一个指导方针 generate the signing certificate fingerprint and register your application .

        2
  •  -1
  •   kanudo    6 年前

    我在问题中所说的所有步骤都是正确的。我只是错过了一件事,那就是我正在使用 “通过Google Play进行应用程序签名”

    当使用“appsigningbygoogleplay”时,我们需要使用 沙一段 应用程序签名证书 API控制台中的内部凭据。

    现在从哪里可以得到这个SHA-1的应用程序签名证书?

    1. 发布管理
    2. 选择 应用程序签名
    3. 现在从“应用程序签名证书”部分复制SHA-1证书指纹
    4. 使用复制的SHA-1指纹在googleapi控制台(googlecloud平台)中创建新凭证

    就这样。现在,当您运行应用程序并进行API调用时 工作 .