使用 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 和 modifiedBy 字段获取 AAD 用户 ID,但电子邮件就足够了。
否则,我能看到的唯一方法是查询 User Information List(使用 UserLookupId)以获取电子邮件?

谢谢

这似乎是正确的假设:

Otherwise the only way I can see is to query the User Information List (using the UserLookupId) to get the email?

对于非系统用户字段,确实是一种方法,但是用户字段是否多值[=43]有一些区别=] 或 单值 。 如果 Approvers 是一个多值用户字段,那么下面的查询:

https://graph.microsoft.com/v1.0/sites/{site-id}/lists/{list-id}/items?$expand=fields($select=Approvers)

returns emailid 属性以及 displayName 属性 用户字段值。

虽然对于单值用户字段 id(可通过{userfield}LookupId 属性) 和 displayName 属性可以通过 items endpoint 请求,例如:

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

这是我修改的经验 Build Angular single-page apps with Microsoft Graph。在下面的示例中,我使用默认文本更改了 id。

这是 The Finished Project on thier 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)')

更改 app/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

结尾 url 中没有任何 {}。