Работа с контактами Gmail
Aspose.Email поддерживает работу с контактами Gmail. Используя интерфейс IGmailClient, пользователи могут извлекать контакты из учетной записи Gmail, создавать новые контакты, а также обновлять и удалять существующие контакты. Gmail позволяет разработчикам выполнять все это с помощью своего публичного API для разработчиков. Для работы с контактами Gmail необходима следующая информация о пользователе: Имя пользователя, адрес электронной почты, пароль, ID клиента, секрет клиента, токен обновления. В этой статье показано, как:
- Получить доступ к контактам Gmail.
- Создать новые контакты Gmail.
- Обновить существующие контакты.
- Удалить контакт.
- Сохранить контакт.
Доступ к контактам Gmail
Следующее является примером приложения, которое может быть использовано для доступа к деталям контактов во всех группах.
// 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()); | |
} | |
} |
Создание контакта
Следующий фрагмент кода показывает, как создать контакт.
// 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); |
Обновление контакта
После того, как контакт будет извлечен, его атрибуты могут быть обновлены, и контакт может быть сохранен обратно в учетную запись Gmail. Следующий фрагмент кода показывает, как извлекать контакты из учетной записи Gmail и затем модифицировать один из них, после чего он сохраняется обратно.
// 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); | |
} |
Удаление контакта
Для удаления контакта Gmail используется метод клиента Gmail DeleteContact, как показано в следующем образце кода.
// For complete examples and data files, please go to https://github.com/aspose-email/Aspose.Email-for-.NET | |
client.DeleteContact(contact.Id.GoogleId); |
Сохранение контакта
Aspose.Email позволяет сохранять контакты в различные форматы вывода, такие как MSG и VCF. Метод Save предоставляет возможность достичь этого. Следующий фрагмент кода показывает, как сохранить контакт.
// 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); |