让GoogleAuthUtil停止要求用户进行离线访问

时间:2014-10-31 14:48:04

标签: android google-app-engine google-oauth

我正在尝试使用客户端Google oAuth2.0授权为我的后端开发应用。我已经完成了Google开发者控制台所需的所有工作。 只要应用程序使用GoogleAuthUtil.getToken()请求授权令牌,Google就会一直要求离线访问。我想一劳永逸地给予许可,因此授权过程变得安静。

以下是我在授权AsyncTask中使用的代码。

protected String doInBackground(String... arg0) {
    String token = null;

    try {
        token = GoogleAuthUtil.getToken(mainActivity, mEmail, "oauth2:server:client_id:"+clientId+":api_scope:https://www.googleapis.com/auth/plus.login");
    } catch (GooglePlayServicesAvailabilityException playEx) {
        Dialog dialog = GooglePlayServicesUtil.getErrorDialog(
                playEx.getConnectionStatusCode(),
                mainActivity,
                1001);
        dialog.show();
    } catch (UserRecoverableAuthException recoverableException) {
        Intent recoveryIntent = recoverableException.getIntent();
        mainActivity.startActivityForResult(recoveryIntent,1001);
        // Use the intent in a custom dialog or just startActivityForResult.
        Log.e("Auth", "Recoverable authentication exception: " + recoverableException.getMessage(), recoverableException);
    } catch (GoogleAuthException authEx) {
        // This is likely unrecoverable.
        Log.e("Auth", "Unrecoverable authentication exception: " + authEx.getMessage(), authEx);
    } catch (IOException ioEx) {
        Log.i("Auth", "transient error encountered: " + ioEx.getMessage());
    }
    return token;
}

1 个答案:

答案 0 :(得分:0)

好的,所以我终于找到了一些可以帮助你们解决这个问题的人。

我将范围更改为:

"audience:server:client_id:" + clientId

就是这样。即使未指定“plus.login”范围,它也可以工作。所以是的,谢谢。

希望这有帮助!