按正文内容过滤事件对象

Filter event objects by body content

我正在尝试使用图表 API 查询日历事件,我想按类别和正文内容过滤它们。

目标是获取任何属于“Test”类别且在其正文内容中包含字符串“FooBar”的事件对象。

我尝试使用以下请求查询图表 API:

https://graph.microsoft.com/v1.0/me/events?$filter=(categories/any(x:x eq 'Test') and contains(body/content, 'FooBar'))

响应是 500 错误消息:

{
    "error": {
        "code": "ErrorInternalServerError",
        "message": "An internal server error occurred. The operation failed.",
        //...
    }
}

“categories”过滤器子句本身工作正常,但只要我将“body/content”子句放回原处,我就会收到上述错误响应。

我从图表 API 中获得的 json 对象看起来像这样(为了更好的可读性而被删除)

{
    "value": [
        {
            "categories": [
                "Test"
            ],
            "bodyPreview": "FooBar",
            "body": {
                "contentType": "html",
                "content": "<html><head><meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\"></head><body><div class=\"BodyFragment\"></div><div class=\"BodyFragment\"><font size=\"2\"><span style=\"font-size:11pt\"><div class=\"PlainText\">FooBar</div></span></font></div></body></html>"
            }
        }
    ]
}

我的过滤器子句有问题吗?或者这可能是 Graph API 本身的问题?
我首先尝试按 bodyPreview 进行过滤,但我得到的错误响应清楚地表明该字段不能按 body/content 进行过滤,所以我想 body/content 应该是可能的。

events 不支持 body/content 过滤。

我已经为 messages 尝试过类似的查询并且它工作正常,所以你的过滤器子句是正确的。

GET https://graph.microsoft.com/v1.0/me/messages?$filter=(categories/any(x:x eq 'Test') and contains(body/content, 'FooBar'))