我正在关注Get metadata for a list的文档。
使用PowerShell或Graph Explorer查询无法完全展开SharePoint列表中项目的字段。
此示例是名为Responsible
的查找字段,用于在Azure Active Directory中查找用户(或在SharePoint术语中,该列是Person or Group
列,仅限于人员)。
一旦通过GUI选择,它就会填充一个显示名称(尽管我希望将更多权威信息存储在后端,如UPN
)。
使用以下格式查询Graph API时:
$Uri = "https://graph.microsoft.com/v1.0/sites/$($SPSite.id)/lists/$($ServiceList.id)/items?expand=fields"
$Data = Invoke-RestMethod -Headers @{Authorization = "Bearer $accesstoken"} -Uri $Uri -Method Get -ErrorAction Stop
我们得到这样的东西:
@odata.etag : "REMOVED"
Title : Storage Platform
Description : Central storage platform
ResponsibleLookupId : 14
Responsible2LookupId : 13
AccountableLookupId : 3
Features : NFS
AudienceLookupId : 92
RequestProcess : {@{LookupId=1; LookupValue=Service Desk}}
Support : {@{LookupId=1; LookupValue=Service Desk}}
AvailabilityLookupId : 1
DependsOn : {}
O365GroupLookupId : 87
LifecycleStageLookupId : 2
ConsultLookupId : 88
id : 1
ContentType : Item
Modified : 2017-11-17T10:47:07Z
Created : 2017-11-17T10:47:07Z
_UIVersionString : 1.0
Attachments : False
Edit :
LinkTitleNoMenu : Storage Platform
LinkTitle : Storage Platform
ItemChildCount : 0
FolderChildCount : 0
_ComplianceFlags :
_ComplianceTag :
_ComplianceTagWrittenTime :
_ComplianceTagUserId :
您可以看到字段ResponsibleLookupId
只提供14
的值,这是无用的。其他字段链接到Office 365组,但再次返回值。因此,无法将这些数据链接到用户/组,并且除非通过门户网站查看,否则其价值非常有限。
我们如何扩展这些数据?它是否会在以后通过API调用提供,还是我们必须进行进一步的查找?
答案 0 :(得分:2)
默认情况下,Microsoft Graph将为查找字段返回LookupId
。您可以通过在$select
参数中专门请求该字段来要求它提供实际值。
使用以下查询将返回displayName
而不是LookupId
的{{1}}:
Responsible
您可以在FieldValueSet的文档中了解其工作原理。
至于返回...items?expand=fields($select=Responsible)
,目前您无法控制它返回的值(它是userPrincipalName
还是LookupId
)。我建议您访问{ {3}}并添加您的建议。