有没有办法获得谷歌Auth Token,没有获得用户的权限android

时间:2017-05-23 05:11:46

标签: android google-authentication

我想使用以下方法取出用户的GoogleAuthToken:

私有类RetrieveTokenTask扩展了AsyncTask {

    @Override
    protected String doInBackground(String... params) {
        String accountName = params[0];
        String scopes = "oauth2:openid";
        String token = null;
        try {
            token = GoogleAuthUtil.getToken(getApplicationContext(), accountName, scopes);
        } catch (IOException e) {
            Log.e(TAG, e.getMessage());
        } catch (UserRecoverableAuthException e) {
            Log.e(TAG, e.getMessage());
            startActivityForResult(e.getIntent(), REQ_SIGN_IN_REQUIRED);
        } catch (GoogleAuthException e) {
            Log.e(TAG, e.getMessage());
        }
        return token;
    }

    @Override
    protected void onPostExecute(String s) {
        super.onPostExecute(s);

        if (s != null) {
            Log.e("AccessToken", s);
            preferences.edit().putString(PreferencesConstants.GOOGLE_AUTH_TOKEN, s).commit();
        }
    }
}

注意:此方法成功地为我提供了令牌,但问题是:它首次请求允许和拒绝用户的权限。 (我不想要)。在没有用户许可的情况下,我有什么方法可以取出令牌。 ?

1 个答案:

答案 0 :(得分:0)

这是由于给应用程序的API访问权限。对于每个开发人员机器,SHA1应该被赋予API并为每个SHA1创建单独的Android API密钥。

转到console.developers.google.com - >选择你的项目 API& AUTH - >证书。 创建新的客户端密钥(尽管它有其他客户端密钥)。 选择已安装的应用 - >机器人。 正确选择包名称和SHA1。