Api 如何从用户字段LookupId获取用户
我在sharepoint online中有一个列表。 在这个列表中,我有一个person字段 当我调用API端点以获取列表中的所有项目时,我会获取person字段的LookupId值 我试图通过使用lookupid的值来获取用户,但由于无法识别该id,因此无法工作 lookupid是int(例如:21)而不是guidApi 如何从用户字段LookupId获取用户,api,sharepoint,microsoft-graph-api,sharepoint-online,microsoft-graph-sdks,Api,Sharepoint,Microsoft Graph Api,Sharepoint Online,Microsoft Graph Sdks,我在sharepoint online中有一个列表。 在这个列表中,我有一个person字段 当我调用API端点以获取列表中的所有项目时,我会获取person字段的LookupId值 我试图通过使用lookupid的值来获取用户,但由于无法识别该id,因此无法工作 lookupid是int(例如:21)而不是guid person字段的配置或我对Microsoft Graph API的调用中是否缺少某些内容?当用户首次登录SharePoint网站集时,会在隐藏的用户信息列表中创建一个ListIt
person字段的配置或我对Microsoft Graph API的调用中是否缺少某些内容?当用户首次登录SharePoint网站集时,会在隐藏的用户信息列表中创建一个ListItem。PersonOrGroup字段中的LookupId引用此列表中的ListItem。SharePoint Online用户信息列表的URL应为:
https://{yourTenant}.sharepoint.com/{yourSiteCollection}/_catalogs/users/detail.aspx
由于用户信息列表是一个通用SharePoint列表,因此可以通过图形查询该列表。首先,获取用户信息列表的列表id。获取列表id的一个简单方法是通过Chrome查看用户信息站点的源代码并搜索“listId”。您应该会发现这样的结果:
"listId":"{yourListIdIsHere}"
复制id。通过使用复制的id、根站点的id和LookupId,可以在用户信息列表中获取ListItem:
https://graph.microsoft.com/v1.0/sites/{siteId}/lists/{pasteCopiedListId}/item/{lookUpId}?$expand=Fields
ListItem包含有关用户的信息,如电子邮件,可用于标识Azure用户:
https://graph.microsoft.com/v1.0/users/{eMail}
问题:如何从Microsoft Graph获取隐藏用户信息列表? 如果你不想使用Google Chrome的“把戏”来获取id,还有另一种获取站点的方法。通常,如果要获取任何站点的id,请调用:
https://graph.microsoft.com/v1.0/sites/{siteId}/lists
但是,即使包含隐藏的站点,也找不到用户信息列表的id。我不知道为什么。另一个问题似乎是,您无法按列表名称筛选列表:
https://graph.microsoft.com/v1.0/sites/{siteId}/lists?$filter=name eq 'users'
查询返回一个错误,即不支持提供的筛选器语句。在不知道id的情况下获取列表的唯一方法似乎是使用列表的属性displayName。但是,displayName基于您的本地化。因此,由于我来自德国,我可以使用以下查询获取站点:
https://graph.microsoft.com/v1.0/sites/{siteId}/lists?$filter=displayName eq 'Benutzerinformationsliste'
您需要将Benutzerinformationsliste替换为您的本地化名称。对于EN,将其替换为“用户信息列表”
这将返回预期结果:
{
"@odata.context": "https://graph.microsoft.com/v1.0/$metadata#sites('xxx')/lists(id,name,displayName)",
"value": [
{
"@odata.etag": "\"xxx\"",
"id": "xxx",
"name": "users",
"displayName": "Benutzerinformationsliste"
}
]
}
正如您所看到的,列表的名称是“users”,所以为什么第一个filter语句不起作用对我来说有点神秘。这里可能有人知道并可以提供帮助。当用户首次登录SharePoint网站集时,会在隐藏的用户信息列表中创建一个列表项。PersonOrGroup字段中的LookupId引用此列表中的ListItem。SharePoint Online用户信息列表的URL应为:
https://{yourTenant}.sharepoint.com/{yourSiteCollection}/_catalogs/users/detail.aspx
由于用户信息列表是一个通用SharePoint列表,因此可以通过图形查询该列表。首先,获取用户信息列表的列表id。获取列表id的一个简单方法是通过Chrome查看用户信息站点的源代码并搜索“listId”。您应该会发现这样的结果:
"listId":"{yourListIdIsHere}"
复制id。通过使用复制的id、根站点的id和LookupId,可以在用户信息列表中获取ListItem:
https://graph.microsoft.com/v1.0/sites/{siteId}/lists/{pasteCopiedListId}/item/{lookUpId}?$expand=Fields
ListItem包含有关用户的信息,如电子邮件,可用于标识Azure用户:
https://graph.microsoft.com/v1.0/users/{eMail}
问题:如何从Microsoft Graph获取隐藏用户信息列表? 如果你不想使用Google Chrome的“把戏”来获取id,还有另一种获取站点的方法。通常,如果要获取任何站点的id,请调用:
https://graph.microsoft.com/v1.0/sites/{siteId}/lists
但是,即使包含隐藏的站点,也找不到用户信息列表的id。我不知道为什么。另一个问题似乎是,您无法按列表名称筛选列表:
https://graph.microsoft.com/v1.0/sites/{siteId}/lists?$filter=name eq 'users'
查询返回一个错误,即不支持提供的筛选器语句。在不知道id的情况下获取列表的唯一方法似乎是使用列表的属性displayName。但是,displayName基于您的本地化。因此,由于我来自德国,我可以使用以下查询获取站点:
https://graph.microsoft.com/v1.0/sites/{siteId}/lists?$filter=displayName eq 'Benutzerinformationsliste'
您需要将Benutzerinformationsliste替换为您的本地化名称。对于EN,将其替换为“用户信息列表”
这将返回预期结果:
{
"@odata.context": "https://graph.microsoft.com/v1.0/$metadata#sites('xxx')/lists(id,name,displayName)",
"value": [
{
"@odata.etag": "\"xxx\"",
"id": "xxx",
"name": "users",
"displayName": "Benutzerinformationsliste"
}
]
}
正如您所看到的,列表的名称是“users”,所以为什么第一个filter语句不起作用对我来说有点神秘。也许这里有人知道并且可以帮忙。正如@QuestionsPS1991所提到的,people字段实际上指的是隐藏的用户列表。通过lookupid,我们可以通过以下方法获取用户:
- 按id获取用户
正如@QuestionsPS1991所提到的,people字段实际上是指隐藏的用户列表。通过lookupid,我们可以通过以下方法获取用户:
- 按id获取用户
如何从Microsoft Graph中获取隐藏用户信息列表?(未使用api/xx)编辑问题如何从Microsoft Graph获取隐藏用户信息列表?(未使用api/xx)编辑问题如何从Microsoft Graph获取隐藏用户信息列表?(未使用_api/xx)更新了缺少回复图像我如何从Microsoft Graph获取隐藏用户信息列表?(未使用_api/xx)已更新,但缺少ReplyImage