одиночный токен аутентификации учетной записи Google для нескольких API данных Google в Android

Привет, энтузиаст Android, я изо всех сил пытаюсь найти решение этой проблемы. Я планирую получить доступ к календарю пользователя Google и документам Google (используя google-api-java-client-v1.6.0). Я могу получить доступ к учетной записи Google пользователя через AccountManager, но я не ошибся при запросе authToken для аутентификации пользователя по этой причине:

Как я буду обрабатывать несколько запросов authToken для Docs и Cal в одном действии, когда пользователь подтверждает приложению доступ к своим учетным записям Google?

В моем приложении Google Docs и Cal находятся на разных вкладках, работающих в фоновом режиме, в тот момент, когда пользователь разрешает доступ к учетной записи пользователя.

любые учебники по ссылкам будут очень признательны.

ТИЯ.


person Ben    schedule 24.01.2012    source источник


Ответы (1)


Если я вас правильно понимаю, вам интересно, как справиться с тем фактом, что вам нужен один authToken для Календаря и один authToken для Документов?

Глядя на некоторый пример кода для использования клиентских библиотек, не могли бы вы сделать что-то вроде этого:

private final static String CAL_AUTH_TOKEN_TYPE = "cl";
private final static String DOCS_AUTH_TOKEN_TYPE = "writely"; // Not sure this is correct

// This will ask the user for permissions the first time
Bundle docsBundle = manager.getAuthToken(account, DOCS_AUTH_TOKEN_TYPE, true, null, null);
Bundle calBundle = manager.getAuthToken(account, CAL_AUTH_TOKEN_TYPE, true, null, null);

// Do whatever syncing you need
doWork(docsBundle, calBundle);

Когда вы сделаете это в первый раз, пользователь получит всплывающее окно с запросом доступа к своему календарю. После утверждения должно появиться другое всплывающее окно с запросом разрешения для Документов. После одобрения всплывающие окна больше никогда не появляются (если только пользователь не переустановит ваше приложение). Так что, думаю, вам не о чем беспокоиться. Просто убедитесь, что вы пытаетесь получить authTokens в первый раз в потоке пользовательского интерфейса, а не в фоновом процессе. В фоновом режиме всплывающее окно не появится.

person Jonas Kalderstam    schedule 24.02.2012
comment
спасибо, что поделились своим мнением, я собираюсь заставить этот фрагмент кода работать - person Ben; 05.03.2012