Как программно подписать пользователя на календарь Google, используя JavaScript? - PullRequest
12 голосов
/ 04 апреля 2011

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

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

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

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

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

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

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

** Edit Я нашел пример того, что я хочу в Java Api ссылка , поэтому я попытался

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#sports@group.v.calendar.google.com");
    calendarService.insertEntry(feedUri, calendarEntry, function(){alert("calendar added")}, handleError);
}

но я получил ту же ошибку

Ответы [ 3 ]

2 голосов
/ 04 мая 2011

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

1 голос
/ 19 апреля 2011

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

nhl_21_Toronto Maple Leafs#sports@group.v.calendar.google.com

0 голосов
/ 20 апреля 2016

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

...