Google 登录错误 getToken() -> NEED_REMOTE_CONSENT

时间:2021-07-20 10:13:18

标签: android google-sheets

几个月的自我,我的谷歌登录程序没有问题,但今天模拟器在Logcat中回复我这个错误:

E/Auth:[GoogleAccountDataServiceImpl] getToken() -> NEED_REMOTE_CONSENT。应用:com_pro.bandweb.mycpstore,服务:oauth2:email https://www.googleapis.com/auth/spreadsheets.readonly openid profile

尝试在 google 中查找,但我没有找到任何建议...这是我用于 sigIn 的代码:

public void InitGoogle() throws IOException {
        GoogleSignInOptions gso = new GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN)
                .requestScopes(new Scope(SPREADSHEETS_SCOPE))
                .requestEmail()
                .build();
        googleSignInClient = com.google.android.gms.auth.api.signin.GoogleSignIn.getClient(this, gso);

        if (GoogleSignIn.getLastSignedInAccount(this) == null) {
            Log.v(TAG, "getting sign-on again");
            //startActivityForResult(googleSignInClient.getSignInIntent(), RC_SIGN_IN);
            SignInActivityResult.launch(googleSignInClient.getSignInIntent());
        } else {
            Log.v(TAG, "sign-on is still good, reusing");

            //faccio la richiesta solo se è stato inserito il foglio di google shhet nelle preferenze, altrimenti avviso
            SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(this);
            if (!sharedPreferences.contains(getString(R.string.pref_googleSheetId_key))
                    || StringUtils.isBlank(sharedPreferences.getString(getString(R.string.pref_googleSheetId_key), ""))
                    || !(spreadsheetIdPattern.matcher(sharedPreferences.getString(getString(R.string.pref_googleSheetId_key), ""))).find()) {
                // no Google sheet ID has been specified - can't retrieve ingredients
                progressBar.setVisibility(ProgressBar.GONE);
                Toasty.info(this, getString(R.string.missing_pref_id_sheet_title), Toasty.LENGTH_LONG, true).show();
            }else {
                //scelgo il tipo di sincronizzazione quando inizializzo il tablet, in base alla scelta nelle preferenze
                if(AppSettings.get().getSyncModeOnStartup() == UPLOAD_DATI)
                    synchGoogleSheet(UPLOAD_DATI);
                else if(AppSettings.get().getSyncModeOnStartup() == DOWNLOAD_DATI)
                    synchGoogleSheet(DOWNLOAD_DATI);
                else
                    synchGoogleSheet(UPLOAD_DOWNLOAD_NONE);
            }
        }
        progressBar.setVisibility(ProgressBar.GONE);

..
..
..
..





ActivityResultLauncher<Intent> SignInActivityResult= registerForActivityResult(
        new ActivityResultContracts.StartActivityForResult(),
        new ActivityResultCallback<ActivityResult>() {
            @Override
            public void onActivityResult(ActivityResult result) {
                if(result.getResultCode() != RESULT_CANCELED) {
                    if (result.getResultCode() == Activity.RESULT_OK && null != result.getData())
                    {
                        Task<GoogleSignInAccount> task = GoogleSignIn.getSignedInAccountFromIntent(result.getData());
                        handleSignInResult(task);
                    }
                }else{
                    progressBar.setVisibility(ProgressBar.GONE);
                }
            }
        });

0 个答案:

没有答案
相关问题