微软图形API:按GUID值过滤

3
我将使用Microsoft Graph Api获取特定用户的详细信息。
我有一个问题可以通过Graph Explorer演示:https://developer.microsoft.com/en-us/graph/graph-explorer 如果我运行这个查询:
https://graph.microsoft.com/v1.0/users

我收到了一份用户列表,包含他们的ID。

我知道只需将ID附加到URL上,就可以获取一个用户的详细信息。例如,下面这个查询:

https://graph.microsoft.com/v1.0/users/f71f1f74-bf1f-4e6b-b266-c777ea76e2c7

显示一个特定用户的详细结果。

{
    "@odata.context": "https://graph.microsoft.com/v1.0/$metadata#users/$entity",
    "id": "f71f1f74-bf1f-4e6b-b266-c777ea76e2c7",
    "businessPhones": [],
    "displayName": "CIE Administrator",
    "givenName": "CIE",
    "jobTitle": null,
    "mail": "admin@CIE493742.onmicrosoft.com",
    "mobilePhone": "+1 3528700812",
    "officeLocation": null,
    "preferredLanguage": "en-US",
    "surname": "Administrator",
    "userPrincipalName": "admin@CIE493742.onmicrosoft.com"
}

然而,在我的情况下,对于字段id应用$filter查询更容易一些。

以下是我尝试过的内容以及出现的错误:

第一次尝试

.../users?$filter=id eq f71f1f74-bf1f-4e6b-b266-c777ea76e2c7

返回以下消息:
发现不兼容类型的二元运算符。操作符种类为“等于”,找到的操作数类型为“Edm.String”和“Edm.Guid”。请注意,该信息保留了HTML标签。
..../users/$filter=id eq guid'f71f1f74-bf1f-4e6b-b266-c777ea76e2c7'

返回以下信息:
未识别的“Edm.String”文字“guid'f71f1f74-bf1f-4e6b-b266-c777ea76e2c7'”在“id eq guid'f71f1f74-bf1f-4e6b-b266-c777ea76e2c7'”中的位置为6。

你能解释一下为什么你想要一个只有一个用户的过滤列表,而不是直接获取用户对象吗?通常你使用列表来查找ID,而不是通过ID进行过滤。 - Marc LaFleur
我同意@MarcLaFleur-MSFT的观点,不过我曾经做过自己的URL生成器,但是它无法灵活处理多个路径元素。我想看看是否可以使用$filter按ID查询。既然我可以这样做了,我应该考虑是否有必要。 - Andrew Shepherd
1个回答

5

终于弄清楚了。

只需用单引号将 guid 包装起来,不需要其他注释。

https://graph.microsoft.com/v1.0/users?$filter=id eq 'f71f1f74-bf1f-4e6b-b266-c777ea76e2c7'

真令人恼火。如果双引号不起作用,我在想它需要什么。 - aross

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接