繁体   English   中英

使用Graph API查询SharePoint列表项并扩展用户字段

[英]Using Graph API to query SharePoint list items and expand user field

我正在尝试查询一些SP列表项,但一切正常,只是我似乎无法展开Person类型的自定义列。

我可以看到createdBylastModifiedBy展开了,甚至包含了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)

返回emailid属性,以及用于用户字段值的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。

这是他们在github上的完成项目

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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM