Управление на Google контакти чрез Gmail клиент
Aspose.Email поддържа работа с контакти в Gmail. С помощта на IGmailClient интерфейс, потребителите могат да извличат контакти от Gmail акаунт, да създават нови контакти и да актуализират или изтриват съществуващи контакти. Gmail позволява на разработчиците да изпълняват всичко това чрез публичния си API за разработчици. За работа с Gmail контакти са необходими следните потребителски данни: потребителско име, имейл адрес, парола, клиент ID, клиент secret, токен за обновяване. Тази статия показва как да:
- Достъп до Gmail контакти.
- Създаване на нови Gmail контакти.
- Актуализиране на съществуващи контакти.
- Изтриване на контакт.
- Записване на контакт.
Достъп до контакти в Gmail
Следното е примерно приложение, което може да се използва за достъп до детайлите на контактите във всички групи.
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());
}
}
Създаване на Google контакти
Следният кодов откъс показва как да създадете контакт в Gmail.
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);
Актуализиране на Google контакти
След като контакът бъде извлечен, атрибутите му могат да се актуализират и контактът може да се запише обратно в Gmail акаунта. Следният кодов откъс показва как да извлечете контакти от Gmail акаунт и след това да модифицирате един от тях, който след това се записва обратно.
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);
}
Изтриване на Google контакти
За да изтриете Gmail контакт, клиентът Gmail DeleteContact методът се използва както е показано в следния примерен откъс.
client.DeleteContact(contact.Id.GoogleId);
Записване на Google контакти
Aspose.Email позволява запазването на контакти в различни изходни формати като MSG и VCF. Запис методът предоставя възможността да постигнете това. Следният кодов откъс показва как да запишете контакт.
contact.Save(dataDir + "contact_out.msg", ContactSaveFormat.Msg);
contact.Save(dataDir + "contact_out.vcf", ContactSaveFormat.VCard);