Microsoft Graph API - 无法使用endswith进行过滤

Tej*_*adi 5 microsoft-graph-api

要过滤 Microsoft Graph API 响应,文档建议使用filter查询选项。

在这里,我在端点上使用了startswithendswith字符串函数'/me/messages'

query = {
    '$filter': "
      startswith(from/emailAddress/address, 'abcd')
      or endswith(from/emailAddress/address, 'gmail.com')"
  }
Run Code Online (Sandbox Code Playgroud)

仅使用startswith返回预期响应。将函数添加endswith到过滤器查询时,收到的响应是错误。

{
  "error": {
    "code": "ErrorInvalidUrlQueryFilter",
    "message": "The query filter contains one or more invalid nodes.",
    "innerError": {
      "request-id": "0d12e1f6-6105-4826-9656-8613f8c167ed",
      "date": "2019-03-14T11:05:56"
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

Dol*_*eja 5

要将 $filter 与endsWith一起使用,您需要:

  1. 将 $count=true 添加到查询参数
  2. 添加 ConsistencyLevel:最终请求标头

示例:'https://graph.microsoft.com/v1.0/users?$count=true&ConsistencyLevel=eventual&$filter=endswith(mail,'@hotmail.com')'

**它适用于邮件和 userPrincipalName,但不适用于 displayName