Microsoft graph api 获取外接程序设置了自定义属性的事件

Microsoft graph api 获取外接程序设置了自定义属性的事件,microsoft-graph-api,office-js,outlook-restapi,outlook-web-addins,Microsoft Graph Api,Office Js,Outlook Restapi,Outlook Web Addins,这是一个后续问题 My Outlook Office.js加载项正在向事件添加一些自定义属性。它按预期工作,我可以使用Microsoft Graph通过以下GET请求访问这些属性: /v1.0/me/events/{event-id}?$expand=SingleValueExtendedProperties($filter=id%20eq%20'String%20{00020329-0000-0000-C000-000000000046}%20Name%20cecp-b7ff386a-234a

这是一个后续问题

My Outlook Office.js加载项正在向事件添加一些自定义属性。它按预期工作,我可以使用Microsoft Graph通过以下
GET
请求访问这些属性:

/v1.0/me/events/{event-id}?$expand=SingleValueExtendedProperties($filter=id%20eq%20'String%20{00020329-0000-0000-C000-000000000046}%20Name%20cecp-b7ff386a-234a-4a38-84bc-e5ae4684b7af')
但现在我尝试通过将此类正文发布到推送通知端点来订阅推送通知(
/v1.0/subscriptions
):

但我得到了:

{
  "error": {
    "code": "ExtensionError",
    "message": "Operation: Create; Exception: [Status Code: BadRequest; Reason: Bad Request]",
    "innerError": {
      "request-id": "01dcece6-0103-4bef-8231-e9ab9480402a",
      "date": "2017-04-04T20:20:58"
    }
  }
}
{
    "error": {
        "code": "BadRequest",
        "message": "Could not find a property named 'PropertyId' on type 'microsoft.graph.singleValueLegacyExtendedProperty'.",
        "innerError": {
            "request-id": "1d3db71e-6ee2-4680-9317-64687813c52a",
            "date": "2017-04-05T13:49:45"
        }
    }
}
尝试将请求中的资源设置为unscaped,但结果相同,接下来我尝试的是
$filter
功能,因此使用MS Graph explorer执行了以下格式的get请求:

/v1.0/me/events/?$filter=singleValueExtendedProperties/any(ep%3A%20ep%2Fid%20eq%20'String%20{00020329-0000-0000-C000-000000000046}%20Name%20cecp-b7ff386a-234a-4a38-84bc-e5ae4684b7af')
但出现以下错误:

{
    "error": {
        "code": "ErrorInvalidUrlQueryFilter",
        "message": "The filter expression for $filter does not match to a single extended property and a value restriction.",
        "innerError": {
            "request-id": "aca7c8ed-6e30-4490-8feb-7f1d2aed6b88",
            "date": "2017-04-04T20:38:28"
        }
    }
}
这是否意味着我还必须按值过滤,而不仅仅是
id

这将是一个问题,因为我需要设置属性的事件,但我事先不知道该值,我希望在收到推送通知后读取它

是否有一种方法可以获取仅由我的外接程序设置了自定义属性的事件,并订阅具有此自定义属性的事件的推送通知

编辑:

当我将
id
更改为
PropertyId
时,我得到的答案是:

{
  "error": {
    "code": "ExtensionError",
    "message": "Operation: Create; Exception: [Status Code: BadRequest; Reason: Bad Request]",
    "innerError": {
      "request-id": "01dcece6-0103-4bef-8231-e9ab9480402a",
      "date": "2017-04-04T20:20:58"
    }
  }
}
{
    "error": {
        "code": "BadRequest",
        "message": "Could not find a property named 'PropertyId' on type 'microsoft.graph.singleValueLegacyExtendedProperty'.",
        "innerError": {
            "request-id": "1d3db71e-6ee2-4680-9317-64687813c52a",
            "date": "2017-04-05T13:49:45"
        }
    }
}
编辑-2:

现在,当我添加按
值进行过滤时,它可以工作:

/v1.0/me/events/?$filter=singleValueExtendedProperties/any(ep: ep/id eq 'String {00020329-0000-0000-C000-000000000046} Name cecp-b7ff386a-234a-4a38-84bc-e5ae4684b7af' and ep/value eq 'foo')
但我不想让所有的事件都发生在这片土地上,不管它的价值如何

编辑-3

通过使用非相等的
ne
运算符,而不是通过
值进行过滤,不进行尝试:

/v1.0/me/events/?$filter=singleValueExtendedProperties/any(ep: ep/id eq 'String {00020329-0000-0000-C000-000000000046} Name cecp-b7ff386a-234a-4a38-84bc-e5ae4684b7af' and ep/value ne 'Foo')

它似乎可以工作,但这次它似乎只是忽略了筛选器并返回所有事件,包括和不包括外接程序中的自定义属性集。

我认为筛选器查询应该是

房地产均价


在几次尝试之后,我找到了一种方法来过滤具有自定义属性的事件/消息,而不考虑其值:

https://graph.microsoft.com/v1.0/me/events/?$filter=singleValueExtendedProperties/any(ep: ep/id eq 'String {00020329-0000-0000-C000-000000000046} Name cecp-b7ff386a-234a-4a38-84bc-e5ae4684b7af' and ep/value ne null)
添加的重要部分是
和ep/value ne null
,而像
和ep/value ne'fooo'
这样的东西不起作用,它只是返回了所有内容


上述过滤也适用于我们希望订阅推送事件的事件的过滤。

这并不能解决我的问题,在做出更改后,我收到了一个不同的错误-用我收到的响应更新了我的答案。