Verwalten Sie Google‑Kalender mit dem Gmail‑Client
Hinzufügen, Bearbeiten und Löschen von Gmail‑Kalendern
Aspose.Email ermöglicht Anwendungen, die Gmail‑Kalender zu verwalten mittels IGmailClient die Funktionen wie Hinzufügen, Löschen und Aktualisieren von Gmail‑Kalendern bietet. Diese Client‑Klasse gibt eine Liste von Objekten des Typs ExtendedCalendar zurück, die Informationen zu den Gmail‑Kalenderelementen enthalten. IGmailClient Klasse stellt die folgenden Funktionen für Kalender bereit:
- CreateCalendar Sie kann verwendet werden, um einen neuen Kalender einzufügen
- ListCalendars Sie kann verwendet werden, um die Liste aller Kalender eines Clients abzurufen
- DeleteCalendar Sie kann verwendet werden, um einen Kalender zu löschen
- FetchCalendar Sie kann verwendet werden, um einen bestimmten Kalender eines Clients abzurufen
- UpdateCalendar Diese Funktion dient dazu, einen modifizierten Kalender eines Clients wieder einzufügen
Um auf die Kalender zuzugreifen, wird GoogleTestUser mit Gmail‑Kontodaten initialisiert. GoogleOAuthHelper wird verwendet, um das Zugriffstoken für den Benutzer zu erhalten, das anschließend zur Initialisierung von IGmailClient genutzt wird.
Einfügen, Abrufen und Aktualisieren von Gmail‑Kalendern
Zum Einfügen eines Kalenders initialisieren Sie ein Objekt vom Typ Calendar und fügen es mit CreateCalendar() Funktion. CreateCalendar() gibt die ID des neu eingefügten Kalenders zurück. Diese ID kann verwendet werden, um den Kalender vom Server abzurufen. Das folgende Code‑Snippet zeigt, wie man Kalender einfügt, abruft und aktualisiert.
Spezifische Google‑Kalender löschen
Um einen bestimmten Kalender zu löschen, müssen wir die Liste aller Kalender eines Clients abrufen und dann nach Bedarf löschen. ListCalendars() gibt die Liste zurück von ExtendedCalendar die Gmail‑Kalender enthält. Das folgende Code‑Snippet zeigt, wie ein bestimmter Kalender gelöscht wird.
Kalender‑Zugriffskontrolle
Aspose.Email bietet volle Kontrolle über den Zugriff auf die Kalenderelemente. ListAccessRules() Funktion wird bereitgestellt von IGmailClient die die Liste zurückgibt von AccessControlRule. Einzelne Regelinformationen können für den Kalender eines Clients abgerufen, geändert und zurückgespeichert werden. IGmailClient enthält die folgenden Funktionen zum Verwalten der Zugriffssteuerungsregeln.
- ListAccessRules Diese Funktion liefert die Liste der AccessControlRule
- CreateAccessRule Diese Funktion erstellt eine neue Zugriffsregel für einen Kalender.
- UpdateAccessRule Diese Funktion wird zum Aktualisieren einer Zugriffsregel verwendet.
- FetchAccessRule Sie kann verwendet werden, um eine bestimmte Zugriffsregel für den Kalender eines Clients abzurufen
- DeleteAccessRule Diese Funktion wird zum Löschen einer Zugriffsregel verwendet.
Der folgende Codeausschnitt zeigt, wie Sie Funktionen zum Verwalten der Zugriffsregeln verwenden:
Kalender‑Client‑Einstellungen und Farbinformationen
Aspose.Email unterstützt den Zugriff auf die Client‑Einstellungen mittels IGmailClient.GetSettings(). Sie gibt die Liste der Einstellungen wie unten angegeben zurück:
- dateFieldOrder
- displayAllTimezones
- hideInvitations
- format24HourTime
- defaultCalendarMode
- defaultEventLength
- Gebietsschema
- remindOnRespondedEventsOnly
- alternateCalendar
- userLocation
- hideWeekends
- showDeclinedEvents
- weekStart
- Wetter
- customCalendarMode
- timezoneLabel
- Zeitzone
- useKeyboardShortcuts
- Land
Ähnliche Farbinfo für Clients kann ebenfalls abgerufen werden mit IGmailClient.GetColors(). Dieses Farbinfo‑Objekt gibt die Liste der Vordergrundfarben, Hintergrundfarben sowie das Aktualisierungsdatum und die -zeit zurück.
Zugriff auf Client‑Einstellungen
Der folgende Codeausschnitt zeigt, wie die Funktionen zum Zugriff auf die Client‑Einstellungen verwendet werden können:
Zugriff auf Farbinformationen
Der folgende Codeausschnitt zeigt, wie die Funktionen zum Zugriff auf die Farbeinstellungen des Clients verwendet werden können.
Google‑Kalender‑Termine verwalten
Aspose.Email bietet Funktionen zur Arbeit mit Terminen in Google‑Kalendern. Die folgenden Aufgaben können mit Terminen im Google‑Kalender durchgeführt werden:
- Termine hinzufügen.
- Liste von Terminen abrufen.
- Bestimmten Termin abrufen.
- Einen Termin aktualisieren.
- Termin von einem Kalender zu einem anderen verschieben.
- Termin löschen.
IGmailClient stellt Funktionen bereit wie CreateAppointment, FetchAppointment, UpdateAppointment, ListAppointments, MoveAppointment und DeleteAppointment.
Termine zum Google‑Kalender hinzufügen
Das folgende Codebeispiel demonstriert die Funktion, einen Termin in einem Kalender hinzuzufügen. Befolgen Sie dazu die Schritte:
- Einen Kalender erstellen und einfügen.
- Die Liste der Termine aus einem neuen Kalender abrufen.
- Einen Termin erstellen.
- Einen Termin einfügen.
Google‑Kalender‑Termine abrufen und aktualisieren
Hier werden das Abrufen und Aktualisieren des Kalenders wie folgt demonstriert:
- Bestimmten Termin abrufen.
- Den Termin ändern.
- Den Termin im Kalender aktualisieren.
Es wird angenommen, dass ein Kalender mit der ID "calendarId" und die eindeutige Termin-ID "AppointmentUniqueId" bereits extrahiert wurden. Das folgende Code‑Snippet zeigt, wie ein Termin abgerufen und aktualisiert wird.
Termine im Google‑Kalender verschieben und löschen
Ein Termin kann verschoben werden, indem der Quellkalender, Zielkalender und die eindeutige ID eines Termins im Quellkalender angegeben werden. Das folgende Code‑Snippet zeigt, wie ein Termin verschoben und gelöscht wird.
FreeBusy‑Abfrage für Google‑Kalender
Aspose.Email bietet einen Abfrage‑Mechanismus, um zu prüfen, ob ein Termin gemäß den Kriterien fällig ist oder nicht. Die Klasse FreeBusyQuery wird dafür bereitgestellt und ermöglicht das Erstellen einer Abfrage für einen bestimmten Kalender.
Dieses Codebeispiel demonstriert die Funktion zum Abfragen eines Kalenders. In diesem Beispiel werden folgende Aufgaben ausgeführt:
- Einen Kalender erstellen und einfügen
- Einen Termin erstellen
- Termin einfügen
- FreeBusy‑Abfrage vorbereiten
- FreeBusy‑Antwort erhalten
// 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);
}
}