如何在Microsoft Graph API中使用筛选器获取SharePoint项目?

如何在Microsoft Graph API中使用筛选器获取SharePoint项目?,sharepoint,microsoft-graph-api,sharepoint-online,boomi,Sharepoint,Microsoft Graph Api,Sharepoint Online,Boomi,在这里,我试图根据创建的日期过滤数据。在第一次我尝试在图形浏览器,它的工作 https://graph.microsoft.com/v1.0/me/messages?$filter=createdDateTime ge 2017-09-04&$select=subject,lastModifiedDateTime 现在正试图在戴尔Boomi中实现同样的功能。这是提取所有项目的资源路径:sites/{id}.sharepoint.com:/sites/{id}:/lists/{list\

在这里,我试图根据创建的日期过滤数据。在第一次我尝试在图形浏览器,它的工作

https://graph.microsoft.com/v1.0/me/messages?$filter=createdDateTime ge 2017-09-04&$select=subject,lastModifiedDateTime
现在正试图在戴尔Boomi中实现同样的功能。这是提取所有项目的资源路径:
sites/{id}.sharepoint.com:/sites/{id}:/lists/{list\u id}/items
很好用

之后,我将添加过滤条件:

sites/{id}.sharepoint.com:/sites/{id}:/lists/{list_id}/items?$filter=lastModifiedDateTime ge 2017-09-04&$select=email,displayName
这是一个错误。这是错误消息:

<HTML><HEAD><TITLE>Bad Request</TITLE>
<META HTTP-EQUIV="Content-Type" Content="text/html; charset=us-ascii"></HEAD>
<BODY><h2>Bad Request</h2>
<hr><p>HTTP Error 400. The request is badly formed.</p>
请试一试

sites/{id}.sharepoint.com:/sites/{id}:/list/{list_id}/items?$filter=lastModifiedDateTime ge'2017-09-04'&$select=email,displayName
filter=lastModifiedDateTime ge'2017-09-04'
-->单引号

注意:如果要选择任何查找值,则需要使用
$expand
查询选项 例如:

sites/{id}.sharepoint.com:/sites/{id}:/lists/{list_id}/items?$filter=lastModifiedDateTime ge '2017-09-04'&$select=email,displayName&$expand=displayName/Name

简短回答

使用创建或修改的自动生成的SharePoint列表项字段

重要提示

要对这些字段执行筛选查询,您必须:

  • 为这些列编制索引(请参见如何)
  • 或者在您的请求中设置“首选:HonorNonIndexeQueriesWarningMayFailRandomy”标题(Microsoft不推荐)
解释


似乎不支持对图形端点返回的值(如lastModifiedDateTime、createdDateTime等)进行筛选,因为/items&$filter=lastModifiedDateTime ge'2018-01-01'等请求将返回“无效筛选子句”错误。

在向Boomi提交OData查询时,我刚刚解决了一个非常类似的问题。问题在于筛选器字符串中的空格:

您的字符串:$filter=lastModifiedDateTime ge'2017-09-04'
应该是:$filter=lastModifiedDateTime%20ge%20'2017-09-04'

谢谢您的输入。我以前尝试过这个
'2017-09-04'
,但它不起作用。您是否尝试过$expander以便更好地理解我添加的示例数据。请查收。在这里,我使用这个URL来提取数据
sites/{id}.sharepoint.com:/sites/{id}:/lists/{list\u id}/items?expand=fields
。通过这个,我可以得到上面提到的数据。之后,我尝试使用过滤器的日期,它不工作。这是URL:sites/{id}.sharepoint.com:/sites/{id}:/lists/{list\u id}/items?$filter=lastModifiedDateTime ge'2017-09-04'&$expand=value/weburl对我也不起作用。我无法过滤任何“元”数据,甚至连ID(例如?filter=ID eq'15')都不能。这一个对我有效:/items?$expand=Fields&$filter=Fields/Modified lt'2018-12-28500:00:00Z'不确定为什么它对我无效。我尝试过这个,也尝试过调整这个,但不起作用。同样的错误。不确定我是否用其他方式处理这个问题。谢谢@JollyBrands,这对我来说很有效,但你注意到“equals”似乎不起作用了吗?我知道列表项的id,但总是出现“Invalid filter子句”错误。有什么想法吗?
sites/{id}.sharepoint.com:/sites/{id}:/lists/{list_id}/items?$filter=lastModifiedDateTime ge '2017-09-04'&$select=email,displayName&$expand=displayName/Name
/items?expand=fields&$filter=fields/Modified gt '2018-01-01'