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.

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:

  1. dateFieldOrder
  2. displayAllTimezones
  3. hideInvitations
  4. format24HourTime
  5. defaultCalendarMode
  6. defaultEventLength
  7. locale
  8. remindOnRespondedEventsOnly
  9. alternateCalendar
  10. userLocation
  11. hideWeekends
  12. showDeclinedEvents
  13. weekStart
  14. pogoda
  15. customCalendarMode
  16. timezoneLabel
  17. strefa czasowa
  18. useKeyboardShortcuts
  19. 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:

  1. Dodaj spotkania.
  2. Pobierz listę spotkań.
  3. Pobierz określone spotkanie.
  4. Zaktualizuj spotkanie.
  5. Przenieś spotkanie z jednego kalendarza do drugiego.
  6. 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:

  1. Utwórz i wstaw kalendarz.
  2. Pobierz listę spotkań z nowego kalendarza.
  3. Utwórz spotkanie.
  4. Wstaw spotkanie.

Pobierz i zaktualizuj spotkania w Kalendarzu Google

Pobieranie i aktualizacja kalendarza jest tutaj przedstawiona w następujący sposób:

  1. Pobierz konkretne spotkanie.
  2. Modyfikuj spotkanie.
  3. 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:

  1. Utwórz i wstaw kalendarz
  2. Utwórz spotkanie
  3. Wstaw spotkanie
  4. Przygotuj zapytanie FreeBusyQuery
  5. 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);
    }
}