2015-07-19 4 views
2

В моем коде им выборки Google + идентификатор маркера, как это:Декодирование GoogleAuthUtil.getToken (Android)

Bundle bundle = new Bundle(); 
        bundle.putString(GoogleAuthUtil.KEY_REQUEST_ACTIONS, 
          "http://schemas.google.com/AddActivity http://schemas.google.com/BuyActivity"); 
        String token = GoogleAuthUtil.getToken(context, 
          Plus.AccountApi.getAccountName(mGoogleApiClient), scope,bundle); 

который возвращает последовательность в 76 символов, в то время как я должен получить что-то вроде:

{ 
    'issued_to': 'xxxxxx.apps.googleusercontent.com', 
    'user_id': 'yyyyyy', 
    'expires_in': 3457, 
    'access_type': 'online', 
    'audience': 'xxxxxx.apps.googleusercontent.com', 
    'scope': 'https://www.googleapis.com/auth/userinfo.email https://www.googleapis.com/auth/userinfo.profile', 
    'email': '[email protected]', 
    'verified_email': True 
} 

Также https://www.googleapis.com/oauth2/v3/tokeninfo?id_token=xyz возвращает это сообщение об ошибке:

{ 
"error_description": "Invalid Value" 
} 

Любые идеи, что им делать WRO ng? Должен ли я его декодировать? если да, то как?

ответ

0

76 символов означает его ключ Base64 и это, как вы декодировать его в массив байтов (как ответил here):

byte[] data = Base64.decode(base64, Base64.DEFAULT); 
 
String text = new String(data, "UTF-8");