Gerencie Calendários do Google usando o Cliente Gmail
Adicionar, Editar e Excluir Calendários do Gmail
Aspose.Email permite que aplicações gerenciem os calendários do Gmail usando IGmailClient que fornece recursos como adicionar, excluir e atualizar calendários do Gmail. Esta classe cliente retorna uma lista de objetos do tipo ExtendedCalendar que contêm informações sobre os itens de calendário do Gmail. IGmailClient classe expõe as seguintes funções para calendários:
- CreateCalendar Pode ser usada para inserir um novo calendário
- ListCalendars Pode ser usada para obter a lista de todos os calendários de um cliente
- DeleteCalendar Pode ser usada para excluir um calendário
- FetchCalendar Pode ser usada para buscar um calendário específico de um cliente
- UpdateCalendar Esta função é usada para inserir de volta um calendário modificado de um cliente
Para acessar os calendários, o GoogleTestUser é inicializado usando credenciais da conta Gmail. O GoogleOAuthHelper é usado para obter o token de acesso do usuário, que é usado posteriormente para inicializar o IGmailClient.
Inserir, Buscar e Atualizar Calendários do Gmail
Para inserir um calendário, inicialize um objeto do tipo Calendar e insira‑lo usando CreateCalendar() função. CreateCalendar() devolve o ID do calendário recém inserido. Esse ID pode ser usado para buscar o calendário no servidor. O trecho de código a seguir mostra como inserir, buscar e atualizar o calendário.
Excluir Calendários do Google Específicos
Para excluir um calendário específico, precisamos obter a lista de todos os calendários de um cliente e então excluir conforme necessário. ListCalendars() devolve a lista de ExtendedCalendar que contém calendários do Gmail. O trecho de código a seguir mostra como excluir um calendário específico.
Controle de Acesso ao Calendário
Aspose.Email fornece controle total sobre o acesso aos itens do calendário. ListAccessRules() função é exposta por IGmailClient que retorna a lista de AccessControlRule. As informações individuais da regra podem ser recuperadas, modificadas e salvas novamente para o calendário de um cliente. IGmailClient contém as seguintes funções para gerenciar as regras de controle de acesso.
- ListAccessRules Esta função fornece a lista de AccessControlRule
- CreateAccessRule Esta função cria uma nova regra de acesso para um calendário.
- UpdateAccessRule Esta função é usada para atualizar uma regra de acesso.
- FetchAccessRule Pode ser usada para buscar uma regra de acesso específica para o calendário de um cliente
- DeleteAccessRule Esta função é usada para excluir uma regra de acesso.
O trecho de código a seguir mostra como usar funções para gerenciar as regras de acesso:
Configurações do Cliente de Calendário e Informações de Cor
Aspose.Email suporta o acesso às configurações do Cliente usando IGmailClient.GetSettings(). Ele retorna a lista de configurações conforme abaixo:
- dateFieldOrder
- displayAllTimezones
- hideInvitations
- format24HourTime
- defaultCalendarMode
- defaultEventLength
- locale
- remindOnRespondedEventsOnly
- alternateCalendar
- userLocation
- hideWeekends
- showDeclinedEvents
- weekStart
- weather
- customCalendarMode
- timezoneLabel
- timezone
- useKeyboardShortcuts
- country
Da mesma forma, informações de cor para clientes também podem ser obtidas usando IGmailClient.GetColors(). Este objeto de informações de cor devolve a lista de cores de primeiro plano, cores de fundo e data e hora da atualização.
Acessar Configurações do Cliente
O trecho de código a seguir mostra como as funções podem ser usadas para acessar as configurações do cliente:
Acessar Informações de Cor
O trecho de código a seguir mostra como as funções podem ser usadas para acessar as configurações de cor do cliente.
Gerenciar compromissos do Google Calendar
Aspose.Email oferece recursos para trabalhar com compromissos nos calendários do Google. As seguintes tarefas podem ser realizadas com compromissos no calendário do Google:
- Adicionar compromissos.
- Recuperar lista de compromissos.
- Recuperar um compromisso específico.
- Atualizar um compromisso.
- Mover compromisso de um calendário para outro.
- Excluir compromisso.
IGmailClient fornece funções como CreateAppointment, FetchAppointment, UpdateAppointment, ListAppointments, MoveAppointment e DeleteAppointment.
Adicionar Compromissos ao Google Calendar
O exemplo de código a seguir demonstra a funcionalidade de adicionar um compromisso em um calendário. Para isso, siga os passos:
- Criar e inserir um calendário.
- Recuperar a lista de compromissos de um novo calendário.
- Criar um compromisso.
- Inserir um compromisso.
Recuperar e atualizar compromissos do Google Calendar
Aqui a recuperação e atualização do calendário são demonstradas da seguinte forma:
- Recuperar compromisso específico.
- Modificar o compromisso.
- Atualizar o compromisso no calendário.
Presume-se que um calendário com id "calendarId" e o id único do compromisso "AppointmentUniqueId" já foram extraídos. O trecho de código a seguir mostra como recuperar e atualizar um compromisso.
Mover e excluir compromissos no Google Calendar
Um compromisso pode ser movido fornecendo o calendário de origem, o calendário de destino e o id único de um compromisso no calendário de origem. O trecho de código a seguir mostra como mover e excluir um compromisso.
Consulta FreeBusy para Google Calendar
Aspose.Email fornece um mecanismo de consulta para verificar se um compromisso está vencido ou não de acordo com os critérios. A classe FreebusyQuery é fornecida para esse fim, permitindo preparar uma consulta para um calendário específico.
Este exemplo de código demonstra o recurso de consulta a um calendário. As seguintes tarefas são realizadas neste exemplo:
- Criar e inserir um calendário
- Criar um compromisso
- Inserir compromisso
- Preparar um FreeBusyQuery
- Obter o 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);
}
}