【发布时间】:2017-09-21 08:38:31
【问题描述】:
我按照this question 中提到的相同步骤,根据 Outlook 插件设置的自定义属性过滤推送通知事件。
以下是我在订阅推送通知时使用的资源链接。
https://outlook.office.com/api/v2.0/me/events/?$filter=SingleValueExtendedProperties%2FAny(ep%3A%20ep%2FPropertyId%20eq%20'String%20{00020329-0000-0000-C000-000000000046}%20Name%20cecp-7e248e5e-204e-4e2b-aa0f-788af20fc21c'%20and%20ep%2FValue%20ne%20null)
它过滤具有由加载项设置的自定义属性的日历项目,无论它是什么自定义属性。 通过查看此资源链接,我们可以说我们没有提到自定义属性名称。但是我的加载项为日历项设置了多个自定义属性。我想过滤所有具有特定自定义属性的日历项目。例如,我的加载项根据业务登录将以下任一自定义属性设置为日历。
自定义属性 1:
var item = Office.context.mailbox.item;
item.loadCustomPropertiesAsync((result) => {
const props = result.value;
props.set("my_prop_one", "test_value_one");
props.saveAsync((saveResult) => console.log("Successfull"));
});
自定义属性 2:
var item = Office.context.mailbox.item;
item.loadCustomPropertiesAsync((result) => {
const props = result.value;
props.set("my_prop_two", "test_value_tw");
props.saveAsync((saveResult) => console.log("Successful"));
});
现在我想过滤所有具有自定义属性 my_prop_one 的日历项目。
编辑 1:
正如@Jason Johnston 在其中一个 cmets 中所建议的,我使用 MFCMapi 交叉验证了属性名称和它的 GUID。属性名称和它的 GUID 值都是正确的。
然后我从 MFCMapi 收集数据并准备以下 url 来过滤具有自定义属性 meetingsetby 且其值为 webex 的日历项目。
https://outlook.office.com/api/v2.0/Me/Events?$filter=SingleValueExtendedProperties%2FAny(ep%3A%20ep%2FPropertyId%20eq%20'String%20{00020329-0000-0000-C000-000000000046}%20Name%20meetingsetby'%20and%20ep%2FValue%20eq%20'webex')
下面是postman 在我使用上面的 url 进行 get 调用时的响应。
如您所见,即使有一个带有自定义属性 meetingsetby 和值 webex 的日历项,响应也有空列表。
然后我使用 Outlook Rest API 将 SingleValueExtendedProperty 设置为日历项目,如this post 中所述。以下是示例请求数据,
SingleValueExtendedProperty的MFCMapi数据
然后我从 MFCMapi 收集数据并准备以下 url 来过滤在上述步骤中设置了 singleValueExtendedProperty 的日历项目。
https://outlook.office.com/api/v2.0/Me/Events?$filter=SingleValueExtendedProperties%2FAny(ep%3A%20ep%2FPropertyId%20eq%20'String%20{6666AA44-4659-4830-9070-00047EC6AC6E}%20Name%20RestApiSingleValueExtendedProperty'%20and%20ep%2FValue%20eq%20'Set this property using REST API')
下面是postman 在我使用上面的 url 进行 get 调用时的响应。
如您所见,我可以使用singleValueExtendedProperty 成功过滤日历项目。但我的要求是过滤具有我的 Outlook Web 插件设置的特定自定义属性的日历项目。
欢迎任何建议/答案。
【问题讨论】:
标签: microsoft-graph-api outlook-restapi