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:
- dateFieldOrder
- displayAllTimezones
- hideInvitations
- format24HourTime
- defaultCalendarMode
- defaultEventLength
- locale
- remindOnRespondedEventsOnly
- alternateCalendar
- userLocation
- hideWeekends
- showDeclinedEvents
- weekStart
- weather
- customCalendarMode
- timezoneLabel
- timezone
- useKeyboardShortcuts
- 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:
- Afspraken toevoegen.
- Lijst met afspraken ophalen.
- Specifieke afspraak ophalen.
- Een afspraak bijwerken.
- Afspraak verplaatsen van de ene agenda naar de andere.
- 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:
- Een agenda maken en invoegen.
- De lijst van afspraken uit een nieuwe agenda ophalen.
- Een afspraak maken.
- Een afspraak invoegen.
Afspraken in Google Agenda ophalen en bijwerken
Hier wordt het ophalen en bijwerken van een agenda als volgt gedemonstreerd:
- Bepaalde afspraak ophalen.
- De afspraak aanpassen.
- 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:
- Maak en voeg een agenda toe
- Maak een afspraak
- Afspraak invoegen
- Bereid een FreeBusyQuery voor
- 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);
}
}