Android:Google登录无效令牌

时间:2015-09-01 10:25:25

标签: android token google-signin

我收到的错误来自我通过谷歌登录android收到的令牌:

  

{"错误":" invalid_token"," error_description":"无效值" }

我还注意到,与我在iOS中获得的令牌相比,我的令牌看起来有点短:

ya29.4AFYx2XNZ1sdfdzhWo-of-fSpsDPjgmATx-J82mCjqZJXglwj8VOvedpY_YXJgEVIWe

我得到这样的令牌:

 private class RetrieveTokenTask extends AsyncTask<String, Void, String> {

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

        @Override
        protected void onPostExecute(String token) {
            super.onPostExecute(token);
            Log.i("Token Value: ", token);
        }
}

知道可能会发生什么,或者如何更深入地调试问题?

1 个答案:

答案 0 :(得分:4)

好的,所以我找到了答案,范围必须写成:

String scopes = "oauth2:"
                + Scopes.PLUS_LOGIN
                + " "
                + Scopes.PROFILE;

端点不同于Android到iOS

'https://www.googleapis.com/oauth2/v1/tokeninfo?id_token='; //for iOS
'https://www.googleapis.com/oauth2/v1/tokeninfo?access_token='; //for android