Я получил OAuth токенов для каждого календаря, который используется в моем андроиде приложении с помощью этого кодаКак создать экземпляр объекта com.google.api.services.calendar.Calendar с использованием токена oAuth?
private HashMap<String, String> getAuthrizedCalendarsOnPhone() {
HashMap<String, String> authorized_calendars = new HashMap<String, String>();
AccountManager acctmgr = AccountManager.get(app_context);
Account[] accounts = acctmgr.getAccountsByType("com.google");
for (Account account : accounts) {
String auth_token_type = "oauth2:https://www.googleapis.com/auth/calendar";
AccountManagerFuture<Bundle> amf = acctmgr.getAuthToken(account, auth_token_type, null, this, null, null);
String authToken;
try {
Bundle authTokenBundle = amf.getResult();
authToken = authTokenBundle.getString(AccountManager.KEY_AUTHTOKEN);
} catch(Exception e) {
authToken = "";
}
authorized_calendars.put(account.name, authToken);
}
return authorized_calendars;
}
Теперь, как я экземпляр com.google.api.services.calendar.Calendar
объекта, используя который OAuth маркер, так что я могу получить доступ к API Календаря от имени этот пользователь?
т.е. так что я могу сделать что-то вроде этого
private HashMap<String, HCEvent> getCalendarEvents(String calendar_name) {
HashMap<String, HCEvent> return_map = new HashMap<String, HCEvent>();
com.google.api.services.calendar.Calendar service = null; //create a Calendar object using the oauth token for associated with calendar_name
com.google.api.services.calendar.model.Events events = service.events().list(calendar_name).setPageToken(pageToken).execute();
/*
* do something with the events
*/
return return_map;
}
Это похоже на то, что мне нужно, но где я могу загрузить банку с 'GoogleAccessProtectedResource'? Он, похоже, не включен в java-клиент Google Calendar API. – azrosen92
Также кажется, что этот метод устарел, вы уверены, что это нормально использовать? – azrosen92
Отредактируйте мое редактирование – DejanRistic