Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/sharepoint/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Api 如何从用户字段LookupId获取用户_Api_Sharepoint_Microsoft Graph Api_Sharepoint Online_Microsoft Graph Sdks - Fatal编程技术网

Api 如何从用户字段LookupId获取用户

Api 如何从用户字段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

我在sharepoint online中有一个列表。 在这个列表中,我有一个person字段

当我调用API端点以获取列表中的所有项目时,我会获取person字段的LookupId值

我试图通过使用lookupid的值来获取用户,但由于无法识别该id,因此无法工作

lookupid是int(例如:21)而不是guid


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获取用户

////////////更新

默认情况下,MS Graph不返回此用户列表。您可以硬编码列表id或按照@@QuestionsPS1991建议进行操作。以下是我的测试:


正如@QuestionsPS1991所提到的,people字段实际上是指隐藏的用户列表。通过lookupid,我们可以通过以下方法获取用户:

  • 按id获取用户

////////////更新

默认情况下,MS Graph不返回此用户列表。您可以硬编码列表id或按照@@QuestionsPS1991建议进行操作。以下是我的测试:


如何从Microsoft Graph中获取隐藏用户信息列表?(未使用api/xx)编辑问题如何从Microsoft Graph获取隐藏用户信息列表?(未使用api/xx)编辑问题如何从Microsoft Graph获取隐藏用户信息列表?(未使用_api/xx)更新了缺少回复图像我如何从Microsoft Graph获取隐藏用户信息列表?(未使用_api/xx)已更新,但缺少ReplyImage