Google Agenda’s beheren met Gmail‑client

Gmail‑agenda’s toevoegen, bewerken en verwijderen

Aspose.Email stelt toepassingen in staat Gmail‑agenda’s te beheren met behulp van IGmailClient die functies biedt zoals het toevoegen, verwijderen en bijwerken van Gmail‑agenda’s. Deze client‑klasse geeft een lijst van objecten van het type ExtendedCalendar terug, die informatie over de Gmail‑agenda‑items bevatten. IGmailClient klasse biedt de volgende functies voor agenda’s:

  • CreateCalendar Kan worden gebruikt om een nieuwe agenda in te voegen
  • ListCalendars Kan worden gebruikt om de lijst van alle agenda’s van een client op te halen
  • DeleteCalendar Kan worden gebruikt om een agenda te verwijderen
  • FetchCalendar Kan worden gebruikt om een specifieke agenda van een client op te halen
  • UpdateCalendar Deze functie wordt gebruikt om een aangepaste agenda van een client opnieuw in te voegen

Om toegang te krijgen tot de agenda’s, wordt GoogleTestUser geïnitialiseerd met Gmail‑accountreferenties. GoogleOAuthHelper wordt gebruikt om het toegangstoken voor de gebruiker op te halen, dat vervolgens wordt gebruikt om IGmailClient te initialiseren.

Agenda’s van Gmail invoegen, ophalen en bijwerken

Om een agenda in te voegen, initialiseert u een object van het type Calendar en voegt u deze in met behulp van CreateCalendar() functie. CreateCalendar() geeft de id van de nieuw toegevoegde agenda. Deze id kan worden gebruikt om de agenda van de server op te halen. De volgende codefragment laat zien hoe een agenda in te voegen, op te halen en bij te werken.

Specifieke Google‑agenda’s verwijderen

Om een specifieke agenda te verwijderen, moeten we de lijst van alle agenda’s van een client ophalen en vervolgens verwijderen zoals nodig. ListCalendars() geeft de lijst van ExtendedCalendar die Gmail‑agenda’s bevat. De volgende codefragment laat zien hoe een specifieke agenda te verwijderen.

Agenda‑toegangscontrole

Aspose.Email biedt volledige controle over de toegang tot agenda‑items. ListAccessRules() functie wordt aangeboden door IGmailClient die de lijst van retourneert AccessControlRule. Informatie over individuele regels kan worden opgehaald, aangepast en terug opgeslagen voor de agenda van een client. IGmailClient bevat de volgende functies voor het beheren van de toegangscontroles.

  • ListAccessRules Deze functie levert de lijst van AccessControlRule
  • CreateAccessRule Deze functie maakt een nieuwe toegangsregel voor een agenda aan.
  • UpdateAccessRule Deze functie wordt gebruikt om een toegangsregel bij te werken.
  • FetchAccessRule Kan worden gebruikt om een specifieke toegangsregel voor de agenda van een client op te halen
  • DeleteAccessRule Deze functie wordt gebruikt om een toegangsregel te verwijderen.

Het volgende code‑fragment laat zien hoe je functies gebruikt voor het beheren van de toegangsregels:

Instellingen van de agenda‑client en kleur‑informatie

Aspose.Email ondersteunt het benaderen van clientinstellingen via IGmailClient.GetSettings(). Het retourneert de onderstaande lijst van instellingen:

  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. weather
  15. customCalendarMode
  16. timezoneLabel
  17. timezone
  18. useKeyboardShortcuts
  19. country

Kleurinfo voor clients kan op dezelfde manier ook worden opgehaald met IGmailClient.GetColors(). Dit kleurinfo-object geeft de lijst van voorgrondkleuren, achtergrondkleuren en bijgewerkte datum en tijd terug.

Clientinstellingen openen

Het volgende code‑fragment laat zien hoe de functies kunnen worden gebruikt om de client‑instellingen te benaderen:

Kleur‑informatie benaderen

Het volgende code‑fragment laat zien hoe de functies kunnen worden gebruikt om de kleurinstellingen van de client te benaderen.

Beheer Google Agenda-afspraken

Aspose.Email biedt functies voor het werken met afspraken in Google-agenda’s. De volgende taken kunnen worden uitgevoerd op afspraken in Google Agenda:

  1. Afspraken toevoegen.
  2. Lijst met afspraken ophalen.
  3. Specifieke afspraak ophalen.
  4. Een afspraak bijwerken.
  5. Afspraak verplaatsen van de ene agenda naar de andere.
  6. Afspraak verwijderen.

IGmailClient biedt functies zoals CreateAppointment, FetchAppointment, UpdateAppointment, ListAppointments, MoveAppointment en DeleteAppointment.

Afspraken toevoegen aan Google Agenda

Het volgende code‑voorbeeld demonstreert de functie om een afspraak toe te voegen aan een agenda. Volg hiervoor de stappen:

  1. Een agenda maken en invoegen.
  2. De lijst van afspraken uit een nieuwe agenda ophalen.
  3. Een afspraak maken.
  4. Een afspraak invoegen.

Afspraken in Google Agenda ophalen en bijwerken

Hier wordt het ophalen en bijwerken van een agenda als volgt gedemonstreerd:

  1. Bepaalde afspraak ophalen.
  2. De afspraak aanpassen.
  3. De afspraak in de agenda bijwerken.

Er wordt aangenomen dat een agenda met id "calendarId" en een unieke afspraak-id "AppointmentUniqueId" al zijn opgehaald. De volgende codefragment toont hoe je een afspraak kunt ophalen en bijwerken.

Afspraken in Google Agenda verplaatsen en verwijderen

Een afspraak kan worden verplaatst door de bronagenda, doelagenda en de unieke id van een afspraak in de bronagenda op te geven. De volgende codefragment toont hoe je een afspraak kunt verplaatsen en verwijderen.

FreeBusy-query voor Google Agenda

Aspose.Email biedt een querymechanisme om te controleren of een afspraak op tijd is op basis van de criteria. De klasse FreebusyQuery wordt hiervoor geleverd en maakt het mogelijk een query voor een specifieke agenda voor te bereiden.

Dit codevoorbeeld toont de functionaliteit om een agenda te bevragen. De volgende taken worden in dit voorbeeld uitgevoerd:

  1. Maak en voeg een agenda toe
  2. Maak een afspraak
  3. Afspraak invoegen
  4. Bereid een FreeBusyQuery voor
  5. Ontvang de 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);
    }
}