javascript - 获取通过 Office/Graph API 设置的 Outlook 加载项 (js) 中的 SingleValueExtendedProperties?

标签 javascript c# office365

My question is just opposite to scenario asked here

我们如何获取通过图形 API 设置的 SingleValueExtendedProperties,然后希望在 Office 加载项中检索相同的属性。

设置:编写类似下面的代码

var requestBody = new HttpRequestMessage(action, requestUrl) { Content = new StringContent("{'SingleValueExtendedProperties': [{'PropertyId':'String {66f5a359-4659-4830-9070-00047ec6ac6e} 名称颜色','值':'绿色'}]}", Encoding.UTF8, “应用程序/json”) };

阅读:我尝试使用所有组合来获取属性值,但得到未定义的结果

    const item = Office.context.mailbox.item;
    item.loadCustomPropertiesAsync((result) => {
        const props = result.value;
        const testProp = props.get("Color");
        console.log("Color", testProp);
    });

有人可以帮助我获取 Office 365 插件中的属性(property)值(value)吗?

最佳答案

您将无法按照您尝试的方式读取属性,因为您创建的属性与 Mail App 格式不兼容,例如,这记录在 https://msdn.microsoft.com/en-us/library/hh968549(v=exchg.80).aspx 中。 (基本上,属性本身包含它们所属应用程序的 ClientId,因此当您调用 loadCustomPropertiesAsync 时,它知道要获取哪些属性)。您在 Graph API 中使用的方法刚刚创建了一个普通的命名属性 https://msdn.microsoft.com/en-us/library/office/ff960427.aspx 。您可以在邮件应用程序中获取此属性,但只能使用 EWS(例如,您的应用程序需要 ReadItem 权限)并使用 makeEwsRequestAsync 发出 GetItem 请求。或者,您应该能够使 Graph API 以 MailApp 在 loadCustomPropertiesAsync 中读取的格式写入属性(如果您遵循文档,则需要写入多个属性)。

附加

如果您想使用 Graph API 在消息上设置属性,而没有其他邮件应用程序已设置您可以使用的属性

"SingleValueExtendedProperties": [
{
"PropertyId":"String 00020329-0000-0000-C000-000000000046 Name cecp-propertyNames",
"Value":"cecp-51248e59-f341-4b4a-a81a-a418f8d3b179;"
 }
,{
"PropertyId":"String 00020329-0000-0000-C000-000000000046 Name cecp-51248e59-f341-4b4a-a81a-a418f8d3b179",
"Value":"{\"mail_note\":\"Whats the point\"}"
 }
]
}

此示例中的 Guid 51248e59-f341-4b4a-a81a-a418f8d3b179 应与 MailApps list 文件中的 UUID 匹配,例如

<OfficeApp xmlns="http://schemas.microsoft.com/office/appforoffice/1.1" 
      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
      xsi:type="MailApp">
    <!-- Id is a unique UUID for the mail app -->
    <Id>51248e59-f341-4b4a-a81a-a418f8d3b179</Id>

如果其他邮件应用程序已在消息上设置属性,则您需要修改第一个属性以将您的 MailApp UUID 附加到该属性值中。例如,如果您的邮件应用程序 UUID 为 81a51297-e77e-4fae-a07f-af546013aeac 并且消息已具有上述值,您将修改该属性,例如

“cecp-51248e59-f341-4b4a-a81a-a418f8d3b179;cecp-81a51297-e77e-4fae-a07f-af546013aeac;”

关于javascript - 获取通过 Office/Graph API 设置的 Outlook 加载项 (js) 中的 SingleValueExtendedProperties?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44135900/

相关文章:

javascript - 在多个页面上使用多个 jQuery 插件?

javascript - jQuery 表单提交不会返回 false

javascript - 在 iframe 中获取父值?

c# - 如何从Controller访问View的事件

c# - 引用自动实现属性的支持字段

rest - 使用 Office 365 REST API OAuth access_token 时出现 SharePoint 错误

javascript - Android的String.includes()和String.startsWith()的区别

c# - 'Project1.ID' 中的未知列 'where clause'

Excel - 从列表中搜索字符串,区分大小写和通配符

c# - Azure Web App 无法从 smtp.office365.com 发送电子邮件