我正在尝试通过Microsoft Graph从SharePoint中获取列表项的集合,我想按CreatedBy进行过滤。要求:https://graph.microsoft.com/v1.0/sites/{siteid}/lists/TeamRequests/items
返回值:
{
"@odata.context": "https://graph.microsoft.com/v1.0/$metadata#sites('{url}')/lists('TeamRequests')/items",
"value": [
{
"@odata.etag": "\"56ad787e-bd69-464a-b5da-dd953e40d7c4,13\"",
"createdDateTime": "2018-02-26T08:34:26Z",
"eTag": "\"56ad787e-bd69-464a-b5da-dd953e40d7c4,13\"",
"id": "11",
"lastModifiedDateTime": "2018-03-22T13:20:03Z",
"webUrl": "{url}/Lists/TeamRequests/11_.000",
"createdBy": {
"user": {
"email": "{email}",
"id": "9c9cbb67-c049-4a2d-845d-6c5ca2300041",
"displayName": "{Name}"
}
},
"lastModifiedBy": {
"user": {
"email": "{email}",
"id": "9c9cbb67-c049-4a2d-845d-6c5ca2300041",
"displayName": "{Name}"
}
},
"parentReference": {},
"contentType": {
"id": "0x01005F15F8133495554D834FF82F187AD0630002133A9CCDE4494D8CB2206D7D6453D6"
}
},
现在,我想为createdBy(ID,displayName或电子邮件地址)过滤此请求。我尝试了?$filter=createdBy/user/email eq '{email}'
类似的请求id或displayName。他们都回来了
{
"error": {
"code": "generalException",
"message": "An unspecified error has occurred.",
"innerError": {
"request-id": "492e3bde-05fe-4484-a475-435ff0aa70b6",
"date": "2018-07-23T07:41:46"
}
}
}
那么如何完成这个过滤器呢?甚至支持吗?
即使听起来像是一个简单的查询,我还是没有想到比以下解决方案更简单的方法:
似乎除了提供用户ID的情况外,不支持按用户字段过滤,这就是该解决方案包含两个步骤的原因:
1)首先,我们需要确定用户Id
通过Email
为此目的,可以利用以下查询:
https://graph.microsoft.com/v1.0/sites/root/lists('User Information List')/items?expand=fields(select=Id,Email)
*User Information List
系统列表存储用户属性(包括ID和电子邮件属性)的位置*
2)一旦用户Id
解决,就可以应用按用户ID过滤项目的最终查询:
https://graph.microsoft.com/v1.0/sites/{site-id}/lists('list-name')/items?filter=fields/<user-field-name>LookupId eq '<user-id>'
哪里
<user-field-name>LookupId
是除了用户字段之外正在暴露的字段,如果是Created
字段,则名称应为AuthorLookupId
例:
https://graph.microsoft.com/v1.0/sites/root/lists('TeamRequests')/items?filter=fields/AuthorLookupId eq '10'
注意
在某些情况下,返回以下错误。字段“”无法在过滤器或orderby中引用,因为未索引。提供“ Prefer:HonorNonIndexedQueriesWarningMayFailRandomly”标头以允许此操作,但请注意,此类查询可能在大型列表上失败。
在这种情况下,需要应用以下请求标头:
首选:HonorNonIndexedQueriesWarningMayFailRandomly
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句