![](/img/trans.png)
[英]Microsoft Graph API Filter SharePoint List Items By CreatedBy User
[英]Using Graph API to query SharePoint list items and expand user field
我正在尝试查询一些SP列表项,但一切正常,只是我似乎无法展开Person类型的自定义列。
我可以看到createdBy
和lastModifiedBy
展开了,甚至包含了AAD用户ID,这很棒,也使我认为我想要的是可能的!
但是我的是自定义列。
我正在运行此程序,似乎只能获取SP用户列表ID和用户的显示名称...两者都没什么用。
/items?expand=fields(select=UserLookupId,User)
理想情况下,我想按照createdBy和ModifyBy字段获取AAD用户ID,但是电子邮件就足够了。
否则,我看到的唯一方法是查询User Information List
(使用UserLookupId
)以获取电子邮件?
谢谢
这似乎是正确的假设:
否则,我看到的唯一方法是查询用户信息列表(使用UserLookupId)以获取电子邮件?
对于非系统用户字段,这确实是一条路,但是用户字段是多值还是单值存在一些区别。 如果“ Approvers
是多值用户字段,则执行以下查询:
https://graph.microsoft.com/v1.0/sites/{site-id}/lists/{list-id}/items?$expand=fields($select=Approvers)
返回email
和id
属性,以及用于用户字段值的displayName
属性。
对于单值用户字段, 只能通过项目终点请求id
(可通过{userfield}LookupId
属性获得)和displayName
属性,例如:
https://graph.microsoft.com/v1.0/sites/{site-id}/lists/{list-id}/items?$expand=fields($select=Approver,ApproverLookupId)
因此,确实需要利用User Information List
来请求其他用户属性,例如:
https://graph.microsoft.com/v1.0/sites/root/lists('User Information List')/items/{item-id}/?$expand=fields($select=Email)
其中item-id
对应于用户字段查找ID
这是我用Microsoft Graph修改Build Angular单页应用程序的经验。 在下面的示例中,我使用默认文字更改了ID。
在Graph Explorer中 ,这可行 。 您可以在Microsoft Graph Explorer中对其进行验证。
https://graph.microsoft.com/v1.0/sites/{site-id}/lists/{list-id}/items?expand=fields($select=id,Title)
在应用程序的app / graph.service.ts中,此操作无效 。 即使您希望它基于图浏览器。
.api('/sites/{site-id}/lists/{list-id}/items?fields($select=id,Title)')
更改应用程序/ graph.service.ts API调用工作 。
.api('/sites/{site-id}/lists/{list-id}/items?')
.expand('fields($select=id,Title)')
结果看起来像这样:
fields: {
@odata.etag: ""d6f5b6ea-9f90-452d-98ba-e838f58d3359,1"",
Title: "IT SPECIALIST (MID)",
id: "20"
}
这是一个示例网站ID:
some.sharepoint.com,9dk062b-2e54-4e4f-b71a-cdb74f42cc44,c6cf6b0a-cc7c-41fd-a76a-ef8f97e8a22f
这是一个示例列表ID。
8eg8c29a-5555-4cfc-bfa4-0e907488f781
结束网址中没有任何{}。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.