Sync Your SharePoint Contacts with Outlook
In this article, Donovan and I talk about a number of techniques to access SharePoint data from your Office applications. Donovan has information on his blog on how to get a development environment up and running to try out these examples.
Using the client object model to access a SharePoint External list.
Using WCF Data Services to access SharePoint standard lists.
Using SharePoint web services to access SharePoint Social Services.
Office Add-Ins: 3 Solutions for Accessing SharePoint Data in Office 2010 SharePoint 2010 introduces a number of new ways to access business data and present it to the user. We’ll show you several options that range from no-code solutions to fully integrated Office add-ins.
Sync SharePoint Social Data with Outlook
In the article you will see how easy it is to leverage the Social Web Services in SharePoint in your Outlook Add-Ins. In particular I show you how to call the User Profile Services to pull your colleagues from SharePoint and create Outlook contacts.
In the article you will walkthrough the details on how everything works. Here is a visual walkthrough of the solution.
From SharePoint
To Outlook
Contact Details
Build a Custom Outlook Ribbon
The Code
private void button1_Click(object sender, RibbonControlEventArgs e)
{
//Instantiate the Web service.
UserProfileService userProfileService =
new UserProfileService();
//Use the current user log-on credentials.
userProfileService.Credentials =
System.Net.CredentialCache.DefaultCredentials;
//Get My Colleagues
ContactData[] contacts =
userProfileService.GetUserColleagues(
"contoso\danj");
//Add each Colleague as an Outlook Contact
foreach (ContactData contact in contacts)
{
//Get the users detailed Properties
PropertyData[] properties =
userProfileService.GetUserProfileByName(contact.AccountName);
//Create a new Outlook Contact
Outlook.ContactItem newContact =
Globals.ThisAddIn.Application.
CreateItem(Outlook.OlItemType.olContactItem);
//Set the Contact Properties
newContact.FullName = contact.Name;
newContact.FirstName = properties[2].Values[0].Value.ToString();
newContact.LastName = properties[4].Values[0].Value.ToString();
newContact.Email1Address = properties[41].Values[0].Value.ToString();
newContact.Department = properties[9].Values[0].Value.ToString();
newContact.JobTitle = properties[10].Values[0].Value.ToString();
newContact.CustomerID = properties[0].Values[0].Value.ToString();
newContact.PrimaryTelephoneNumber = properties[8].Values[0].Value.ToString();
//Notes field
newContact.Body = properties[13].Values[0].Value.ToString();
//Download the users profile image from SharePoint
SetContactImage(properties, newContact);
newContact.Save();
}
}
You can learn more about SharePoint’s Social Data features here on MSDN. This provides guidance for programmability issues related to user profiles and social data in Microsoft SharePoint Server 2010. In addition, this includes topics that offer step-by-step, how-to procedures for programming with user profiles and audiences.
Also be sure to visit Donovan’s blog as a great resource for Office development.