2017-05-04 86 views
0

之後的研究小時,我實現互操作使用辦公庫,以獲得從Outlook聯繫人,使用此代碼UWP獲取的Outlook本地聯繫人

 var outlookApplication = new Application(); 
     NameSpace mapiNamespace = outlookApplication.GetNamespace("MAPI"); 
     MAPIFolder contacts = mapiNamespace.GetDefaultFolder(OlDefaultFolders.olFolderContacts); 

     for (int i = 1; i < contacts.Items.Count + 1; i++) 
     { 
      var contact = (ContactItem)contacts.Items[i]; 
      Console.WriteLine(contact.FullName); 
      Console.WriteLine(contact.Email1Address); 
      Console.WriteLine(); 
     } 

我的目標是做這樣的事情在UWP應用。當我試圖將Outlook互操作庫轉換爲UWP時,出現錯誤。讀完一些書後,我發現我不能在UWP應用程序中使用這個COM庫。 所以我的問題是:如何在UWP應用程序中獲得Outlook聯繫人,就像上面的版本一樣?

+1

使用Outlook日曆REST API https://msdn.microsoft.com/zh-cn/office/office365/api/calendar-rest-operations –

+0

我認爲這個API只適用於Office 365,不適用於Outlook的前提版本。 –

+0

我用它與Outlook帳戶並沒有任何問題。我從JavaScript開始工作,但我認爲它沒有任何影響力。 –

回答

0

您將需要使用基於Web的API,如Graph,Outlook Contacts或Exchange Web服務。 UWP應用程序被沙盒化,無法從Win32電子郵件客戶端訪問電子郵件帳戶數據。因此,您只能訪問Exchange,Office 365或Outlook.com中的基於Web的電子郵件數據。

+0

我也試過Exchange Web服務,看來我甚至無法在UWP應用程序中添加EWS包。 –

+0

您無法使用EWS託管API,但可以使用任何REST-ful方法發送EWS請求並處理響應。 –

+0

讓我說清楚。我想訪問「內部部署」Exchange Server並從那裏訪問聯繫人。你能詳細說明你的答案嗎?我嘗試了EWS,但它似乎不適用於UWP應用程序。 –