Google plus登录getIdToken返回null

Ale*_*ham 2 android login

我正在尝试将google plus登录集成到我的应用中.但是当我调用getServerAuthCode()和getIdToken()时,它总是返回null.我无法弄清楚究竟是什么问题.

     private void handleSignInResult (GoogleSignInResult result)
     {
        Log.d(TAG, "handleSignInResult:" + result.isSuccess());
        if (result.isSuccess()) {

            GoogleSignInAccount acct = result.getSignInAccount();
            Toast.makeText(getApplicationContext(), acct.getDisplayName() + "-" + acct.getEmail() + "-" + acct.getServerAuthCode(), Toast.LENGTH_SHORT).show();
            Log.d(TAG, "Server Token google" + acct.getServerAuthCode() + "-ID token" + acct.getIdToken());
            create_account_method(acct.getEmail(), acct.getDisplayName(), acct.getServerAuthCode());

        } else {

        }
    }
Run Code Online (Sandbox Code Playgroud)

whi*_*rue 8

可能你已经解决但未来参考.我遇到了同样的问题,解决方案实际上非常简单.

在阅读此链接中的getIdToken文档后,我发现在构建GoogleSignInOptions对象时它缺少requestIdToken(serverClientId)和.requestServerAuthCode(serverClientId,false)调用.

这是代码:

String serverClientId = getResources().getString(R.string.google_server_client_id);

GoogleSignInOptions gso = new GoogleSignInOptions
                .Builder(GoogleSignInOptions.DEFAULT_SIGN_IN)
                .requestEmail()
                .requestIdToken(serverClientId)
                .requestServerAuthCode(serverClientId, false)
                .build();
Run Code Online (Sandbox Code Playgroud)