Управление на Google контакти чрез Gmail клиент

Aspose.Email поддържа работа с контакти в Gmail. С помощта на IGmailClient интерфейс, потребителите могат да извличат контакти от Gmail акаунт, да създават нови контакти и да актуализират или изтриват съществуващи контакти. Gmail позволява на разработчиците да изпълняват всичко това чрез публичния си API за разработчици. За работа с Gmail контакти са необходими следните потребителски данни: потребителско име, имейл адрес, парола, клиент ID, клиент secret, токен за обновяване. Тази статия показва как да:

Достъп до контакти в 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);