Správa Google kalendářů pomocí Gmail klienta
Přidávat, upravovat a mazat Gmail kalendáře
Aspose.Email umožňuje aplikacím spravovat kalendáře Gmail pomocí IGmailClient která poskytuje funkce jako přidávání, mazání a aktualizace Gmail kalendářů. Tato klientská třída vrací seznam objektů typu ExtendedCalendar, které obsahují informace o položkách Gmail kalendáře. IGmailClient třída poskytuje následující funkce pro kalendáře:
- CreateCalendar Lze ji použít k vložení nového kalendáře
- ListCalendars Lze ji použít k získání seznamu všech kalendářů klienta
- DeleteCalendar Lze ji použít k smazání kalendáře
- FetchCalendar Lze ji použít k načtení konkrétního kalendáře klienta
- UpdateCalendar Tato funkce slouží k vložení upraveného kalendáře klienta zpět
Pro přístup ke kalendářům je GoogleTestUser inicializován pomocí přihlašovacích údajů Gmail účtu. GoogleOAuthHelper se používá k získání přístupového tokenu pro uživatele, který je následně použit k inicializaci IGmailClient.
Vkládání, získávání a aktualizace Gmail kalendářů
Pro vložení kalendáře inicializujte objekt typu Calendar a vložte jej pomocí CreateCalendar() funkce. CreateCalendar() vrací ID nově vloženého kalendáře. Toto ID lze použít k načtení kalendáře ze serveru. Následující úryvek kódu ukazuje, jak vložit, načíst a aktualizovat kalendář.
Odstranit konkrétní Google kalendáře
Pro smazání konkrétního kalendáře potřebujeme získat seznam všech kalendářů klienta a poté je podle potřeby smazat. ListCalendars() vrací seznam ExtendedCalendar který obsahuje kalendáře Gmail. Následující úryvek kódu ukazuje, jak smazat konkrétní kalendář.
Řízení přístupu ke kalendáři
Aspose.Email poskytuje plnou kontrolu nad přístupem k položkám kalendáře. ListAccessRules() funkce je vystavena v IGmailClient která vrací seznam AccessControlRule. Informace o jednotlivých pravidlech lze načíst, upravit a uložit zpět pro kalendář klienta. IGmailClient obsahuje následující funkce pro správu přístupových pravidel.
- ListAccessRules Tato funkce poskytuje seznam AccessControlRule
- CreateAccessRule Tato funkce vytvoří nové pravidlo přístupu pro kalendář.
- UpdateAccessRule Tato funkce slouží k aktualizaci pravidla přístupu.
- FetchAccessRule Lze ji použít k načtení konkrétního pravidla přístupu pro kalendář klienta
- DeleteAccessRule Tato funkce slouží k odstranění pravidla přístupu.
Následující úryvek kódu ukazuje, jak použít funkce pro správu přístupových pravidel:
Nastavení kalendářového klienta a informace o barvách
Aspose.Email podporuje přístup k nastavení klienta pomocí IGmailClient.GetSettings(). Vrací seznam nastavení, jak je uvedeno níže:
- dateFieldOrder
- displayAllTimezones
- hideInvitations
- format24HourTime
- defaultCalendarMode
- defaultEventLength
- locale
- remindOnRespondedEventsOnly
- alternateCalendar
- userLocation
- hideWeekends
- showDeclinedEvents
- weekStart
- weather
- customCalendarMode
- timezoneLabel
- timezone
- useKeyboardShortcuts
- country
Podobně lze informace o barvách pro klienty získat pomocí IGmailClient.GetColors(). Tento objekt s informacemi o barvě vrací seznam popředních barev, pozadí a datum a čas aktualizace.
Přístup k nastavení klienta
Následující úryvek kódu ukazuje, jak lze funkce použít k přístupu k nastavením klienta:
Přístup k informacím o barvách
Následující úryvek kódu ukazuje, jak lze funkce použít k přístupu k nastavení barev klienta.
Spravovat schůzky v kalendáři Google
Aspose.Email poskytuje funkce pro práci se schůzkami v kalendářích Google. Následující úkoly lze provádět se schůzkami v kalendáři Google:
- Přidat schůzky.
- Načíst seznam schůzek.
- Načíst konkrétní schůzku.
- Aktualizovat schůzku.
- Přesunout schůzku z jednoho kalendáře do druhého.
- Smazat schůzku.
IGmailClient poskytuje funkce jako CreateAppointment, FetchAppointment, UpdateAppointment, ListAppointments, MoveAppointment a DeleteAppointment.
Přidávat schůzky do Google kalendáře
Následující ukázkový kód demonstruje funkci přidání schůzky do kalendáře. Pro dosažení tohoto cíle postupujte podle následujících kroků:
- Vytvořit a vložit kalendář.
- Získat seznam schůzek z nového kalendáře.
- Vytvořit událost.
- Vložit schůzku.
Načíst a aktualizovat schůzky v kalendáři Google
Zde je ukázáno načítání a aktualizace kalendáře následovně:
- Načíst konkrétní událost.
- Upravit událost.
- Aktualizovat událost v kalendáři.
Předpokládá se, že kalendář s ID "calendarId" a jedinečné ID schůzky "AppointmentUniqueId" již byly získány. Následující úryvek kódu ukazuje, jak načíst a aktualizovat schůzku.
Přesunout a smazat schůzky v kalendáři Google
Schůzku lze přesunout zadáním zdrojového kalendáře, cílového kalendáře a jedinečného ID schůzky ve zdrojovém kalendáři. Následující úryvek kódu ukazuje, jak schůzku přesunout a smazat.
FreeBusy dotaz pro kalendář Google
Aspose.Email poskytuje mechanismus dotazování pro kontrolu, zda je schůzka splněna podle kritérií. Pro tento účel je k dispozici třída FreebusyQuery, která umožňuje připravit dotaz pro konkrétní kalendář.
Tento ukázkový kód demonstruje funkci dotazování kalendáře. V tomto příkladu jsou provedeny následující úkoly:
- Vytvořit a vložit kalendář
- Vytvořit schůzku
- Vložit schůzku
- Připravit FreeBusyQuery
- Získat 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);
}
}