Управление на Google Calendar чрез Gmail клиент
Добавяне, редактиране и изтриване на Gmail календари
Aspose.Email позволява на приложенията да управляват Gmail календарите, използвайки IGmailClient които предоставят функции като добавяне, изтриване и актуализиране на Gmail календари. Този клиентски клас връща списък от обекти тип ExtendedCalendar, съдържащи информация за елементите на Gmail календар. IGmailClient класът предоставя следните функции за календари:
- CreateCalendar Може да се използва за вмъкване на нов календар
- ListCalendars Може да се използва за получаване на списъка от всички календари на клиент
- DeleteCalendar Може да се използва за изтриване на календар
- FetchCalendar Може да се използва за извличане на конкретен календар на клиент
- UpdateCalendar Тази функция се използва за въвеждане обратно на модифициран календар на клиент
За достъп до календарите, GoogleTestUser се инициализира с данни за Gmail акаунт. GoogleOAuthHelper се използва за получаване на токен за достъп за потребителя, който след това се използва за инициализиране на IGmailClient.
Вмъкване, извличане и актуализиране на Gmail календари
За вмъкване на календар, инициализирайте обект от тип Calendar и го вмъкнете, като използвате CreateCalendar() функция. CreateCalendar() връща идентификатора на нововъведения календар. Този идентификатор може да се използва за извличане на календара от сървъра. Следният кодов фрагмент показва как да вмъкнете, извлечете и актуализирате календар.
Изтриване на конкретни Google календари
За изтриване на конкретен календар, трябва да получим списъка с всички календари на клиент и след това да изтрием според нуждите. ListCalendars() връща списъка с ExtendedCalendar което съдържа Gmail календари. Следният кодов фрагмент показва как да изтриете конкретен календар.
Контрол на достъпа до календар
Aspose.Email предоставя пълен контрол върху достъпа до елементите от календара. ListAccessRules() функцията е предоставена от IGmailClient които връщат списъка от AccessControlRule. Индивидуална информация за правило може да бъде извлечена, модифицирана и запазена обратно за календара на клиент. IGmailClient съдържа следните функции за управление на правилата за контрол на достъпа.
- ListAccessRules Тази функция предоставя списъка от AccessControlRule
- CreateAccessRule Тази функция създава ново правило за достъп за календар.
- UpdateAccessRule Тази функция се използва за актуализиране на правило за достъп.
- FetchAccessRule Може да се използва за извличане на конкретно правило за достъп за календар на клиент
- DeleteAccessRule Тази функция се използва за изтриване на правило за достъп.
Следният кодов откъс показва как да използвате функциите за управление на правилата за достъп:
Настройки на клиент за календар и информация за цветовете
Aspose.Email поддържа достъп до клиентските настройки чрез използване на IGmailClient.GetSettings(). Той връща списъка с настройки, както е дадено по-долу:
- ред на полетата за дата
- показване на всички часови зони
- hideInvitations
- форматиране на 24-часово време
- defaultCalendarMode
- стандартна продължителност на събитие
- локализация
- remindOnRespondedEventsOnly
- alternateCalendar
- местоположение на потребителя
- hideWeekends
- showDeclinedEvents
- начало на седмицата
- време
- customCalendarMode
- етикет за часова зона
- часова зона
- useKeyboardShortcuts
- страна
Подобно, информация за цвят за клиентите може да се извлече чрез IGmailClient.GetColors(). Този обект за информация за цвят връща списъка с предни цветове, фонови цветове и дата и час на актуализиране.
Достъп до клиентски настройки
Следният кодов откъс показва как функциите могат да се използват за достъп до настройките на клиента:
Достъп до информация за цветовете
Следният кодов откъс показва как функциите могат да се използват за достъп до цветовите настройки на клиента.
Управление на срещи в Google Calendar
Aspose.Email предоставя функции за работа със срещи в Google календарите. Следните задачи могат да се изпълняват със срещи в Google календар:
- Добавяне на срещи.
- Получаване на списък със срещи.
- Получаване на конкретна среща.
- Актуализиране на среща.
- Преместване на среща от един календар в друг.
- Изтриване на среща.
IGmailClient предоставя функции като CreateAppointment, FetchAppointment, UpdateAppointment, ListAppointments, MoveAppointment и DeleteAppointment.
Добавяне на срещи към Google Calendar
Следният примерен код демонстрира функцията за добавяне на среща в календар. За да постигнете това, следвайте стъпките:
- Създаване и вмъкване на календар.
- Извличане на списъка със срещи от нов календар.
- Създаване на среща.
- Вмъкване на среща.
Получаване и актуализиране на срещи в Google Calendar
Тук се демнстрира извличането и актуализирането на календар както следва:
- Извличане на конкретна среща.
- Промяна на срещата.
- Актуализиране на срещата в календара.
Приема се, че календар с идентификатор "calendarId" и уникален идентификатор на среща "AppointmentUniqueId" вече са извлечени. Следният кодов откъс показва как да получите и актуализирате среща.
Преместване и изтриване на срещи в Google Calendar
Срещата може да бъде преместена, като се посочи изходният календар, целевият календар и уникалният идентификатор на срещата в изходния календар. Следният кодов откъс показва как да преместите и изтриете среща.
FreeBusy заявка за Google Calendar
Aspose.Email предоставя механизъм за заявка, за да провери дали срещата е предстояща или не според критериите. Класът FreebusyQuery е предоставен за тази цел и позволява подготовка на заявка за конкретен календар.
Този примерен код демонстрира функцията за заявка към календар. В този пример се изпълняват следните задачи:
- Създайте и вмъкнете календар
- Създайте среща
- Вмъкнете среща
- Подготовка на FreeBusyQuery
- Получаване на FreebusyResponse
// For complete examples and data files, please go to https://github.com/aspose-email/Aspose.Email-for-.NET
// Use the GoogleUser and GoogleOAuthHelper classes below to receive an access token
using (IGmailClient client = GmailClient.GetInstance(accessToken, user.Email))
{
// Initialize calendar item
Aspose.Email.Clients.Google.Calendar calendar1 = new Aspose.Email.Clients.Google.Calendar("summary - " + Guid.NewGuid().ToString(), null, null, "Europe/Kiev");
// Insert calendar and get back id of newly inserted calendar and Fetch the same calendar using calendar id
string id = client.CreateCalendar(calendar1);
Aspose.Email.Clients.Google.Calendar cal1 = client.FetchCalendar(id);
string calendarId1 = cal1.Id;
try
{
// Get list of appointments in newly inserted calendar. It should be zero
Appointment[] appointments = client.ListAppointments(calendarId1);
if (appointments.Length != 0)
{
Console.WriteLine("Wrong number of appointments");
return;
}
// Create a new appointment and Calculate appointment start and finish time
DateTime startDate = DateTime.Now;
DateTime endDate = startDate.AddHours(1);
// Create attendees list for appointment
MailAddressCollection attendees = new MailAddressCollection();
attendees.Add("user1@domain.com");
attendees.Add("user2@domain.com");
// Create appointment
Appointment app1 = new Appointment("Location - " + Guid.NewGuid().ToString(), startDate, endDate, "user2@domain.com", attendees);
app1.Summary = "Summary - " + Guid.NewGuid().ToString();
app1.Description = "Description - " + Guid.NewGuid().ToString();
app1.StartTimeZone = "Europe/Kiev";
app1.EndTimeZone = "Europe/Kiev";
// Insert the newly created appointment and get back the same in case of successful insertion
Appointment app2 = client.CreateAppointment(calendarId1, app1);
// Create Freebusy query by setting min/max timeand time zone
FreebusyQuery query = new FreebusyQuery();
query.TimeMin = DateTime.Now.AddDays(-1);
query.TimeMax = DateTime.Now.AddDays(1);
query.TimeZone = "Europe/Kiev";
// Set calendar item to search and Get the reponse of query containing
query.Items.Add(cal1.Id);
FreebusyResponse resp = client.GetFreebusyInfo(query);
// Delete the appointment
client.DeleteAppointment(calendarId1, app2.UniqueId);
}
finally
{
// Delete the calendar
client.DeleteCalendar(cal1.Id);
}
}