Zarządzaj kalendarzami Google przy użyciu klienta Gmail
Dodawanie, edycja i usuwanie kalendarzy Gmail
Aspose.Email umożliwia aplikacjom zarządzanie kalendarzami Gmail przy użyciu IGmailClient która zapewnia funkcje takie jak dodawanie, usuwanie i aktualizowanie kalendarzy Gmail. Ta klasa klienta zwraca listę obiektów typu ExtendedCalendar, które zawierają informacje o elementach kalendarza Gmail. IGmailClient klasa udostępnia następujące funkcje dla kalendarzy:
- CreateCalendar Może być użyte do wstawienia nowego kalendarza
- ListCalendars Może być użyte do pobrania listy wszystkich kalendarzy klienta
- DeleteCalendar Może być użyta do usunięcia kalendarza
- FetchCalendar Może być użyta do pobrania konkretnego kalendarza klienta
- UpdateCalendar Ta funkcja jest używana do ponownego wstawienia zmodyfikowanego kalendarza klienta
Aby uzyskać dostęp do kalendarzy, GoogleTestUser jest inicjalizowany przy użyciu danych logowania konta Gmail. GoogleOAuthHelper jest używany do uzyskania tokenu dostępu dla użytkownika, który następnie jest używany do inicjalizacji IGmailClient.
Wstawianie, pobieranie i aktualizacja kalendarzy Gmail
Aby wstawić kalendarz, zainicjuj obiekt typu Calendar i wstaw go przy użyciu CreateCalendar() funkcja. CreateCalendar() zwraca identyfikator nowo wstawionego kalendarza. Ten identyfikator może być użyty do pobrania kalendarza z serwera. Poniższy fragment kodu pokazuje, jak wstawiać, pobierać i aktualizować kalendarz.
Usuwanie konkretnych kalendarzy Google
Aby usunąć konkretny kalendarz, musimy pobrać listę wszystkich kalendarzy klienta, a następnie usunąć wybrany. ListCalendars() zwraca listę ExtendedCalendar który zawiera kalendarze Gmail. Poniższy fragment kodu pokazuje, jak usunąć konkretny kalendarz.
Kontrola dostępu do kalendarza
Aspose.Email zapewnia pełną kontrolę nad dostępem do elementów kalendarza. ListAccessRules() funkcja jest udostępniona przez IGmailClient który zwraca listę AccessControlRule. Informacje o poszczególnych regułach można pobrać, zmodyfikować i zapisać ponownie dla kalendarza klienta. IGmailClient zawiera następujące funkcje do zarządzania regułami kontroli dostępu.
- ListAccessRules Ta funkcja zapewnia listę AccessControlRule
- CreateAccessRule Ta funkcja tworzy nową regułę dostępu dla kalendarza.
- UpdateAccessRule Ta funkcja służy do aktualizacji reguły dostępu.
- FetchAccessRule Może być użyta do pobrania konkretnej reguły dostępu dla kalendarza klienta
- DeleteAccessRule Ta funkcja służy do usuwania reguły dostępu.
Poniższy fragment kodu pokazuje, jak używać funkcji do zarządzania regułami dostępu:
Ustawienia klienta kalendarza i informacje o kolorach
Aspose.Email obsługuje dostęp do ustawień Klienta za pomocą IGmailClient.GetSettings(). Zwraca listę ustawień, jak podano poniżej:
- dateFieldOrder
- displayAllTimezones
- hideInvitations
- format24HourTime
- defaultCalendarMode
- defaultEventLength
- locale
- remindOnRespondedEventsOnly
- alternateCalendar
- userLocation
- hideWeekends
- showDeclinedEvents
- weekStart
- pogoda
- customCalendarMode
- timezoneLabel
- strefa czasowa
- useKeyboardShortcuts
- kraj
Podobnie informacje o kolorach dla klientów można pobrać przy użyciu IGmailClient.GetColors(). Ten obiekt informacji o kolorze zwraca listę kolorów pierwszego planu, kolorów tła oraz datę i czas aktualizacji.
Dostęp do Ustawień Klienta
Poniższy fragment kodu pokazuje, jak można używać funkcji do uzyskiwania ustawień klienta:
Dostęp do informacji o kolorach
Poniższy fragment kodu pokazuje, jak można używać funkcji do uzyskiwania ustawień kolorów klienta.
Zarządzaj spotkaniami w Kalendarzu Google
Aspose.Email udostępnia funkcje do pracy ze Spotkaniami w kalendarzach Google. Następujące zadania mogą być wykonywane na spotkaniach w kalendarzu Google:
- Dodaj spotkania.
- Pobierz listę spotkań.
- Pobierz określone spotkanie.
- Zaktualizuj spotkanie.
- Przenieś spotkanie z jednego kalendarza do drugiego.
- Usuń spotkanie.
IGmailClient udostępnia funkcje takie jak CreateAppointment, FetchAppointment, UpdateAppointment, ListAppointments, MoveAppointment i DeleteAppointment.
Dodawanie spotkań do Kalendarza Google
Poniższy przykład kodu demonstruje funkcję dodawania spotkania w kalendarzu. Aby to osiągnąć, wykonaj następujące kroki:
- Utwórz i wstaw kalendarz.
- Pobierz listę spotkań z nowego kalendarza.
- Utwórz spotkanie.
- Wstaw spotkanie.
Pobierz i zaktualizuj spotkania w Kalendarzu Google
Pobieranie i aktualizacja kalendarza jest tutaj przedstawiona w następujący sposób:
- Pobierz konkretne spotkanie.
- Modyfikuj spotkanie.
- Zaktualizuj spotkanie w kalendarzu.
Zakłada się, że kalendarz o id "calendarId" oraz unikalny identyfikator spotkania "AppointmentUniqueId" zostały już pobrane. Poniższy fragment kodu pokazuje, jak pobrać i zaktualizować spotkanie.
Przenieś i usuń spotkania w Kalendarzu Google
Spotkanie może zostać przeniesione poprzez podanie kalendarza źródłowego, kalendarza docelowego oraz unikalnego identyfikatora spotkania w kalendarzu źródłowym. Poniższy fragment kodu pokazuje, jak przenieść i usunąć spotkanie.
Zapytanie FreeBusy dla Kalendarza Google
Aspose.Email udostępnia mechanizm zapytań, aby sprawdzić, czy spotkanie jest zaplanowane zgodnie z kryteriami. Klasa FreebusyQuery jest dostarczona w tym celu i pozwala przygotować zapytanie dla konkretnego kalendarza.
Ten przykład kodu demonstruje funkcję zapytania do kalendarza. W tym przykładzie wykonywane są następujące zadania:
- Utwórz i wstaw kalendarz
- Utwórz spotkanie
- Wstaw spotkanie
- Przygotuj zapytanie FreeBusyQuery
- Pobierz odpowiedź 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);
}
}