是否可以使用 Office 加载项以编程方式访问 outlook 中的联系人列表

Is it possible to programmatic-ally access the list of contacts in outlook using Office Add In

我正在构建一个加载项,除了帐户拥有的联系人列表之外,还应该抓取当前项目(消息)中使用的联系人(收件人、发件人、抄送和密件抄送)。

根据 documentation,尽管我在通讯录中有联系人,并且正在阅读带有发件人电子邮件的消息,但以下说明给了我零个联系人。

var contacts = Office.context.mailbox.item.getEntities().contacts;

我需要获取我在帐户中管理的联系人列表:

此列表可通过 open graph APIs 访问,我想知道它是否也可通过 Office 加载项的 Office 对象在本地访问

看来您误解了文档。

引述:

以下示例访问当前项目正文中的联系人实体

var contacts = Office.context.mailbox.item.getEntities().contacts;

您可以使用以下 link:

获取所有联系人
Microsoft.Office.Interop.Outlook.Items OutlookItems;
  Microsoft.Office.Interop.Outlook.Application outlookObj = new Microsoft.Office.Interop.Outlook.Application();
  MAPIFolder Folder_Contacts;
  Folder_Contacts = (MAPIFolder)outlookObj.Session.GetDefaultFolder(OlDefaultFolders.olFolderContacts);
  OutlookItems = Folder_Contacts.Items;
  MessageBox.Show("Wykryto kontaktów: " + OutlookItems.Count.ToString());

  for (int i = 0; i < OutlookItems.Count; i++)
  {
    Microsoft.Office.Interop.Outlook.ContactItem contact = (Microsoft.Office.Interop.Outlook.ContactItem)OutlookItems[i+1];
    sNazwa = contact.FullName;
    sFirma = contact.CompanyName;
    sAdress = contact.BusinessAddressStreet;
    sMiejscowosc = contact.BusinessAddressPostalCode + " " + contact.BusinessAddressCity;
    sEmail = contact.Email1Address;
    dataGridView1.Rows.Add(sNazwa, sFirma, sAdress, sMiejscowosc, sEmail);

  }

更多内容请参考下面link:

Get Outlook contacts into C# form-based application

Office Js 不提供API 来获取帐户中的联系人列表。 但是您可以使用 authentication APIs, then use this token to acquire Graph token to interact with Graph APIs and get the list of contacts

从 Outlook 获取授权令牌
Office.context.auth.getAccessTokenAsync(function (result) {
    if (result.status === "succeeded") {
        // Use this token to call Web API
        var ssoToken = result.value;
        // Now send this token to your server and acquire a Graph token
        // Server can talk to Graph APIs and get contacts to display
    } else {
        // Handle error
    }
});

Create a Node.js Office Add-in that uses single sign-on