Как программно подписать пользователя на календарь Google с помощью javascript?

Эй, я могу аутентифицировать и авторизовать пользователя с помощью javascript API для календаря Google. то, что я хочу сделать дальше, это подписать этого пользователя на общедоступный календарь. Я думал, что могу просто вызвать конструктор google.gdata.calendar.CalendarEntry с идентификатором календаря, но это не сработало.

var entry = google.gdata.calendar.CalendarEntry("idOfCalendar");

я также попытался создать экземпляр идентификатора записи с помощью google.gdata.atom.Id("idOfCalendar"); и добавив это в конструктор CalendarEntry. Использование установленных методов также не сработало.

Я использую метод InsertEntry для добавления записи, но получаю следующую ошибку

Ошибка: для добавления календаря в список избранного в проекции allcalendars необходимо указать действительный идентификатор календаря.

Я могу получить доступ к событиям этого календаря, используя google.gdata.calendar.CalendarEventQuery().

Google API для javascript не дает много примеров, кто-нибудь знает ответ на мою проблему или хороший ресурс для работы с API календаря Google? Как вы думаете, мне следует использовать вместо этого php или jason?

** Изменить Я нашел пример того, что мне нужно, в API Java ссылка я попробовал

function addSubscriptionToCalendar() {
    var feedUri = "http://www.google.com/calendar/feeds/default/allcalendars/full";
    var calendarEntry = new google.gdata.calendar.CalendarEntry();
    calendarEntry.setId("nhl_21_%54oronto+%4daple+%4ceafs#[email protected]");
    calendarService.insertEntry(feedUri, calendarEntry, function(){alert("calendar added")}, handleError);
}

но у меня такая же ошибка


person Devin Crossman    schedule 04.04.2011    source источник


Ответы (3)


Вы должны использовать фид owncalendars для изменения/добавления записи календаря для аутентифицированного пользователя, а не для allcalendars.

person Sarath    schedule 03.05.2011

Похоже, ваш идентификатор календаря недействителен. Идентификатор из вашего второго примера выглядит как URL-код. Попробуйте использовать декодированное значение:

nhl_21_Toronto Maple Leafs#[email protected]

person Russell Davis    schedule 19.04.2011

API gdata для календарей отключен; новый способ сделать это — через: https://developers.google.com/google-apps/calendar/v3/reference/calendarList/insert

person askvictor    schedule 19.04.2016