Hantera Google Kalendrar med Gmail‑klienten

Lägg till, redigera och ta bort Gmail‑kalendrar

Aspose.Email låter applikationer hantera Gmail-kalendrar med hjälp av IGmailClient som tillhandahåller funktioner som att lägga till, ta bort och uppdatera Gmail‑kalendrar. Denna klientklass returnerar en lista med ExtendedCalendar‑objekt som innehåller information om Gmail‑kalenderposter. IGmailClient klass exponerar följande funktioner för kalendrar:

  • CreateCalendar Den kan användas för att infoga en ny kalender
  • ListCalendars Den kan användas för att hämta listan över alla kalendrar för en klient
  • DeleteCalendar Den kan användas för att radera en kalender
  • FetchCalendar Den kan användas för att hämta en specifik kalender för en klient
  • UpdateCalendar Denna funktion används för att återinföra en modifierad kalender för en klient

För att komma åt kalendrarna initieras GoogleTestUser med Gmail‑kontouppgifter. GoogleOAuthHelper används för att hämta åtkomsttoken för användaren, som sedan används för att initiera IGmailClient.

Infoga, hämta och uppdatera Gmail‑kalendrar

För att lägga till en kalender, initiera ett Calendar‑objekt och sätt in det med hjälp av CreateCalendar() funktion. CreateCalendar() returnerar ID för den nyligen infogade kalendern. Detta ID kan användas för att hämta kalendern från servern. Följande kodsnutt visar hur man infogar, hämtar och uppdaterar en kalender.

Ta bort specifika Google‑kalendrar

För att radera en specifik kalender måste vi hämta listan över alla klientens kalendrar och sedan radera efter behov. ListCalendars() returnerar listan över ExtendedCalendar som innehåller Gmail-kalendrar. Följande kodsnutt visar hur du raderar en specifik kalender.

Kalenderåtkomstkontroll

Aspose.Email ger full kontroll över åtkomsten till kalenderposterna. ListAccessRules() funktion exponeras av IGmailClient som returnerar listan över AccessControlRule. Individuell regelinformation kan hämtas, modifieras och sparas tillbaka för en klients kalender. IGmailClient innehåller följande funktioner för att hantera åtkomstkontrollreglerna.

  • ListAccessRules Denna funktion ger listan över AccessControlRule
  • CreateAccessRule Denna funktion skapar en ny åtkomstregel för en kalender.
  • UpdateAccessRule Denna funktion används för att uppdatera en åtkomstregel.
  • FetchAccessRule Den kan användas för att hämta en specifik åtkomstregel för en klients kalender
  • DeleteAccessRule Denna funktion används för att radera en åtkomstregel.

Följande kodsnutt visar hur du använder funktioner för att hantera åtkomstreglerna:

Kalenderklientinställningar och färginformation

Aspose.Email stödjer åtkomst till klientinställningarna genom att använda IGmailClient.GetSettings(). Den returnerar listan över inställningar som visas nedan:

  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

Liknande färginformation för klienter kan också hämtas med IGmailClient.GetColors(). Detta färginformationsobjekt returnerar listan av förgrundsfärger, bakgrundsfärger samt uppdateringsdatum och tid.

Kom åt klientinställningar

Följande kodsnutt visar hur funktionerna kan användas för att komma åt klientinställningarna:

Få åtkomst till färginformation

Följande kodsnutt visar hur funktionerna kan användas för att komma åt klientens färginställningar.

Hantera Google Kalender‑möten

Aspose.Email erbjuder funktioner för att arbeta med möten i Google‑kalendrar. Följande uppgifter kan utföras på möten i Google Kalender:

  1. Lägg till möten.
  2. Hämta lista med möten.
  3. Hämta ett specifikt möte.
  4. Uppdatera ett möte.
  5. Flytta möte från en kalender till en annan.
  6. Ta bort möte.

IGmailClient tillhandahåller funktioner som CreateAppointment, FetchAppointment, UpdateAppointment, ListAppointments, MoveAppointment och DeleteAppointment.

Lägg till möten i Google Kalender

Följande kodexempel visar funktionen för att lägga till ett möte i en kalender. För att uppnå detta, följ stegen:

  1. Skapa och infoga en kalender.
  2. Hämta listan över möten från ett nytt kalender.
  3. Skapa ett möte.
  4. Infoga ett möte.

Hämta och uppdatera Google Kalender‑möten

Här demonstreras hämtning och uppdatering av kalendern på följande sätt:

  1. Hämta specifikt möte.
  2. Ändra mötet.
  3. Uppdatera mötet i kalendern.

Det antas att en kalender med id "calendarId" och ett mötes unika id "AppointmentUniqueId" redan har extraherats. Följande kodsnutt visar hur du hämtar och uppdaterar ett möte.

Flytta och ta bort möten i Google Kalender

Ett möte kan flyttas genom att ange källkalender, destinationskalender och det unika id:t för ett möte i källkalendern. Följande kodsnutt visar hur du flyttar och tar bort ett möte.

FreeBusy‑fråga för Google Kalender

Aspose.Email tillhandahåller en frågemekanism för att kontrollera om ett möte är förfallet eller inte enligt kriterierna. FreebusyQuery‑klassen finns för detta ändamål och möjliggör att förbereda en fråga för en viss kalender.

Detta kodexempel demonstrerar funktionen för att fråga en kalender. Följande uppgifter utförs i exemplet:

  1. Skapa och infoga en kalender
  2. Skapa ett möte
  3. Infoga möte
  4. Förbered en FreeBusyQuery
  5. Hämta 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);
    }
}