Trabajando con Contactos de Gmail

Aspose.Email admite el trabajo con contactos de Gmail. Usando la interfaz IGmailClient, los usuarios pueden recuperar contactos de una cuenta de Gmail, crear nuevos contactos y actualizar o eliminar contactos existentes. Gmail permite a los desarrolladores realizar todas estas acciones mediante su API pública para desarrolladores. La siguiente información del usuario es necesaria para trabajar con los contactos de Gmail: Nombre de usuario, dirección de correo electrónico, contraseña, ID del cliente, secreto del cliente, token de actualización. Este artículo muestra cómo:

Acceso a los Contactos de Gmail

Lo siguiente es una aplicación de muestra que se puede usar para acceder al detalle de los contactos en todos los grupos.

// For complete examples and data files, please go to https://github.com/aspose-email/Aspose.Email-for-.NET
GoogleTestUser User2 = new GoogleTestUser("user", "email address", "password", "clientId", "client secret");
string accessToken;
string refreshToken;
GoogleOAuthHelper.GetAccessToken(User2, out accessToken, out refreshToken);
// Get IGmailclient
using (IGmailClient client = GmailClient.GetInstance(accessToken, User2.EMail))
{
Contact[] contacts = client.GetAllContacts();
foreach (Contact contact in contacts)
Console.WriteLine(contact.DisplayName + ", " + contact.EmailAddresses[0]);
// Fetch contacts from a specific group
ContactGroupCollection groups = client.GetAllGroups();
GoogleContactGroup group = null;
foreach (GoogleContactGroup g in groups)
switch (g.Title)
{
case "TestGroup": group = g;
break;
}
// Retrieve contacts from the Group
if (group != null)
{
Contact[] contacts2 = client.GetContactsFromGroup(group.Id);
foreach (Contact con in contacts2)
Console.WriteLine(con.DisplayName + "," + con.EmailAddresses[0].ToString());
}
}

Creando un Contacto

El siguiente fragmento de código muestra cómo crear un contacto.

// For complete examples and data files, please go to https://github.com/aspose-email/Aspose.Email-for-.NET
GoogleTestUser User2 = new GoogleTestUser("user", "email address", "password", "clientId", "client secret");
string accessToken;
string refreshToken;
GoogleOAuthHelper.GetAccessToken(User2, out accessToken, out refreshToken);
// Gmail Client
IGmailClient client = GmailClient.GetInstance(accessToken, User2.EMail);
// Create a Contact
Contact contact = new Contact();
contact.Prefix = "Prefix";
contact.GivenName = "GivenName";
contact.Surname = "Surname";
contact.MiddleName = "MiddleName";
contact.DisplayName = "Test User 1";
contact.Suffix = "Suffix";
contact.JobTitle = "JobTitle";
contact.DepartmentName = "DepartmentName";
contact.CompanyName = "CompanyName";
contact.Profession = "Profession";
contact.Notes = "Notes";
PostalAddress address = new PostalAddress();
address.Category = PostalAddressCategory.Work;
address.Address = "Address";
address.Street = "Street";
address.PostOfficeBox = "PostOfficeBox";
address.City = "City";
address.StateOrProvince = "StateOrProvince";
address.PostalCode = "PostalCode";
address.Country = "Country";
contact.PhysicalAddresses.Add(address);
PhoneNumber pnWork = new PhoneNumber();
pnWork.Number = "323423423423";
pnWork.Category = PhoneNumberCategory.Work;
contact.PhoneNumbers.Add(pnWork);
PhoneNumber pnHome = new PhoneNumber();
pnHome.Number = "323423423423";
pnHome.Category = PhoneNumberCategory.Home;
contact.PhoneNumbers.Add(pnHome);
PhoneNumber pnMobile = new PhoneNumber();
pnMobile.Number = "323423423423";
pnMobile.Category = PhoneNumberCategory.Mobile;
contact.PhoneNumbers.Add(pnMobile);
contact.Urls.Blog = "Blog.ru";
contact.Urls.BusinessHomePage = "BusinessHomePage.ru";
contact.Urls.HomePage = "HomePage.ru";
contact.Urls.Profile = "Profile.ru";
contact.Events.Birthday = DateTime.Now.AddYears(-30);
contact.Events.Anniversary = DateTime.Now.AddYears(-10);
contact.InstantMessengers.AIM = "AIM";
contact.InstantMessengers.GoogleTalk = "GoogleTalk";
contact.InstantMessengers.ICQ = "ICQ";
contact.InstantMessengers.Jabber = "Jabber";
contact.InstantMessengers.MSN = "MSN";
contact.InstantMessengers.QQ = "QQ";
contact.InstantMessengers.Skype = "Skype";
contact.InstantMessengers.Yahoo = "Yahoo";
contact.AssociatedPersons.Spouse = "Spouse";
contact.AssociatedPersons.Sister = "Sister";
contact.AssociatedPersons.Relative = "Relative";
contact.AssociatedPersons.ReferredBy = "ReferredBy";
contact.AssociatedPersons.Partner = "Partner";
contact.AssociatedPersons.Parent = "Parent";
contact.AssociatedPersons.Mother = "Mother";
contact.AssociatedPersons.Manager = "Manager";
// Email Address
EmailAddress eAddress = new EmailAddress();
eAddress.Address = "email@gmail.com";
contact.EmailAddresses.Add(eAddress);
string contactUri = client.CreateContact(contact);

Actualizando un Contacto

Una vez que se recupera un contacto, sus atributos pueden actualizarse y el contacto puede guardarse nuevamente en la cuenta de Gmail. El siguiente fragmento de código muestra cómo recuperar contactos de una cuenta de Gmail y luego modificar uno de ellos, el cual se vuelve a guardar.

// For complete examples and data files, please go to https://github.com/aspose-email/Aspose.Email-for-.NET
GoogleTestUser User2 = new GoogleTestUser("user", "email address", "password", "clientId", "client secret");
string accessToken;
string refreshToken;
GoogleOAuthHelper.GetAccessToken(User2, out accessToken, out refreshToken);
// Get IGmailclient
using (IGmailClient client = GmailClient.GetInstance(accessToken, User2.EMail))
{
Contact[] contacts = client.GetAllContacts();
Contact contact = contacts[0];
contact.JobTitle = "Manager IT";
contact.DepartmentName = "Customer Support";
contact.CompanyName = "Aspose";
contact.Profession = "Software Developer";
client.UpdateContact(contact);
}

Eliminando un Contacto

Para eliminar un contacto de Gmail, se utiliza el método DeleteContact del cliente de Gmail, como se muestra en el siguiente fragmento de muestra.

// For complete examples and data files, please go to https://github.com/aspose-email/Aspose.Email-for-.NET
client.DeleteContact(contact.Id.GoogleId);

Guardando un Contacto

Aspose.Email permite guardar contactos en varios formatos de salida, como MSG y VCF. El método Save proporciona la capacidad de lograr esto. El siguiente fragmento de código muestra cómo guardar un contacto.

// For complete examples and data files, please go to https://github.com/aspose-email/Aspose.Email-for-.NET
contact.Save(dataDir + "contact_out.msg", ContactSaveFormat.Msg);
contact.Save(dataDir + "contact_out.vcf", ContactSaveFormat.VCard);