Javascript 从Outlook加载项读取ExtendedProperties

Javascript 从Outlook加载项读取ExtendedProperties,javascript,outlook-addin,exchangewebservices,extended-properties,Javascript,Outlook Addin,Exchangewebservices,Extended Properties,我目前正在使用EWS管理的API(C#)在日历文件夹上设置自定义扩展属性: 绑定日历文件夹时,我还可以使用托管API加载这些设置: var myCalendar = CalendarFolder.Bind(service, folderId, requestedPropertySet); 接下来,我想阅读这些相同的ExtendedProperties,但是来自使用officejavascript库的Outlook插件 从外观上看,Outlook库不公开任何离开Office.context.it

我目前正在使用EWS管理的API(C#)在
日历文件夹上设置自定义
扩展属性

绑定
日历文件夹时,我还可以使用托管API加载这些设置:

var myCalendar = CalendarFolder.Bind(service, folderId, requestedPropertySet);
接下来,我想阅读这些相同的
ExtendedProperties
,但是来自使用officejavascript库的Outlook插件

从外观上看,Outlook库不公开任何离开
Office.context.item
以访问
ExtendedProperties
的方法


库中是否有允许我访问此文件的方法?如果没有,我是否可以使用在URL路径中具有GUID的模式方法(
)http://schemas.microsoft.com/mapi/string/{00020329-0000-0000-C000-0000000000 46}/yourProp“
)?

要访问外接程序中文件夹的自定义属性,您需要使用MakeEWRequestAsync在外接程序中创建GetFolder。要获得正确的SOAP消息,只需在EWS管理的API代码中启用跟踪,该代码将输出您可以转换的SOAP。需要注意的一件事是在应用程序中创建MakeWSRequestAsync的安全要求,例如ReadWriteEmailBox要访问加载项中文件夹的自定义属性,您需要使用MakeWSRequestAsync在加载项中创建GetFolder。要获得正确的SOAP消息,只需在EWS管理的API代码中启用跟踪,该代码将输出您可以转换的SOAP。需要注意的一件事是在应用程序(例如ReadWriteEmailBox)中创建makeEwsRequestAsync的安全要求。从现在起(2018年7月),编写Outlook加载项时访问自定义ExtendedProperties的首选方法是使用

有一些示例代码显示了如何将API与Office插件JavaScript库一起使用,可从中获得

要使用API,您需要从当前Outlook邮箱获取身份验证令牌。这可以使用带有关键字参数
{isRest:true}
Office.context.mailbox.getCallbackTokenAsync()
方法来完成。您还应该使用
Office.context.mailbox.restUrl
属性来获取API调用的正确基本URL

有几种方法可以从JavaScript实际调用RESTAPI,但在客户端实现RESTAPI的最简单方法是使用AJAX调用。在您的示例中,这看起来像:

const getMessageUrl = Office.context.mailbox.restUrl
  + "/v2.0/me/mailFolders/" + <folder id> + "?"
  + "$expand=singleValueExtendedProperties"
  + "($filter=PropertyId eq '<property id>')";

$.ajax({
  url: getMessageUrl,
  datatype: 'json',
  headers: {'Authorization': 'Bearer ' + <auth token>}
}).then(item => {
  // your code here
})
如果您与我一样,试图访问GUID规则之前的属性,则您的可能如下所示:

"String 0x007D"
截至目前(2018年7月),在编写Outlook加载项时,访问自定义ExtendedProperties的首选方法是使用

有一些示例代码显示了如何将API与Office插件JavaScript库一起使用,可从中获得

要使用API,您需要从当前Outlook邮箱获取身份验证令牌。这可以使用带有关键字参数
{isRest:true}
Office.context.mailbox.getCallbackTokenAsync()
方法来完成。您还应该使用
Office.context.mailbox.restUrl
属性来获取API调用的正确基本URL

有几种方法可以从JavaScript实际调用RESTAPI,但在客户端实现RESTAPI的最简单方法是使用AJAX调用。在您的示例中,这看起来像:

const getMessageUrl = Office.context.mailbox.restUrl
  + "/v2.0/me/mailFolders/" + <folder id> + "?"
  + "$expand=singleValueExtendedProperties"
  + "($filter=PropertyId eq '<property id>')";

$.ajax({
  url: getMessageUrl,
  datatype: 'json',
  headers: {'Authorization': 'Bearer ' + <auth token>}
}).then(item => {
  // your code here
})
如果您与我一样,试图访问GUID规则之前的属性,则您的可能如下所示:

"String 0x007D"

我不知道有什么方法可以分析发送的SOAP消息。那是丢失的一块。非常感谢。我不知道有什么方法可以分析发送的SOAP消息。那是丢失的一块。非常感谢。