2013-10-08 5 views
0

Я пытаюсь получить аутентифицированного пользователя из API конечных точек Cloud в Python, используя endpoints.get_current_user(). Но get_current_user всегда возвращает None вместо аутентифицированного пользователя. Мой клиент - приложение для Android.Не удается получить аутентифицированного пользователя из конечных точек облака

Я попытался:

1) Установка GoogleAccountCredential в клиенте:

googleAccountCredential = GoogleAccountCredential.usingAudience(
       getApplicationContext(), 
       webClientId); 
     api = new Api.Builder(
       AndroidHttp.newCompatibleTransport(), 
       new GsonFactory(), 
       googleAccountCredential) 
         .setRootUrl(apiRootUrl) 
         .setGoogleClientRequestInitializer(requestInitializer) 
         .build(); 

2) Установка веб-идентификатор клиента, используемый GoogleAccount верительных:

server:client_id:myid.apps.googleusercontent.com 

3) Запуск селектора учетных записей Google и установка выбранной учетной записи в GoogleAccountCredential:

startActivityForResult(googleAccountCredential.newChooseAccountIntent(), REQUEST_GOOGLE_ACCOUNT_PICKER); 

...

protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
     switch (requestCode) { 
      case REQUEST_GOOGLE_ACCOUNT_PICKER: 
      if (data != null && data.getExtras() != null) { 
       String accountName = data.getExtras().getString(AccountManager.KEY_ACCOUNT_NAME); 
       if (accountName != null) { 
       googleAccountCredential.setSelectedAccountName(accountName); 
       } 
      } 
      return; 
     } 
     super.onActivityResult(requestCode, resultCode, data); 
    } 

4) Установка allowed_client_ids и аудитории на моем Python API:

@endpoints.api(name='api', 
       version='v1', 
       description='My API', 
       allowed_client_ids=[config.WEB_CLIENT_ID, 
            config.ANDROID_CLIENT_ID, 
            endpoints.API_EXPLORER_CLIENT_ID], 
       audiences=[config.WEB_CLIENT_ID]) 
class MyApi(remote.Service): 
... 

Я могу подключить Android приложение для моего Dev App Engine сервера без каких-либо ошибки. Что мне не хватает?

ответ

Смежные вопросы