gpt4 book ai didi

microsoft-graph-api - 为什么 Microsoft Graph 需要 $select 和 $expand=extensions?

转载 作者:行者123 更新时间:2023-12-04 07:21:03 25 4
gpt4 key购买 nike

在 Graph Explorer 中,当我进行身份验证并使用“获取开放扩展”示例时,它会针对此端点执行 GET:

https://graph.microsoft.com/v1.0/me?$select=id,displayName,mail,mobilePhone&$expand=extensions

这将返回我使用“创建开放扩展”示例添加的所有扩展。但是如果我删除 $select 参数,使端点看起来像这样......
https://graph.microsoft.com/v1.0/me?$expand=extensions

...然后我收到一条错误消息,指出““类型'microsoft.graph.user'的实体实例值没有属性'id'的值。”看来我需要一个$select参数才能返回扩展的扩展。并且 $select 值是什么并不重要——我可以使用一个与 JSON 有效负载中的任何字段都不对应的无意义字符串,并且它工作正常。

为什么在这种情况下需要 $select 参数?

最佳答案

除了$select=fieldnotfound,我可以复制它。 .无论有没有该 $select 语句,我都会返回相同的错误。我无法解释为什么你会看到这种行为,但我可以提供一些关于这里出了什么问题的见解。

首先是关于幕后发生的事情的一些背景。

当您调用 /me没有额外的参数,默认 $select参数自动使用。默认情况下,它使用以下内容:
$select=businessPhones,displayName,givenName,jobTitle,mail,mobilePhone,officeLocation,preferredLanguage,surname,userPrincipalName,id
如您所见,id实际上是选定的字段之一。理论上,只需添加 $expand=extentions因此应该按预期工作。不幸的是,似乎添加 $expand还略微更改了基础 $select 中的字段声明为好。即,它会丢弃 id field :
$select=businessPhones,displayName,givenName,jobTitle,mail,mobilePhone,officeLocation,preferredLanguage,surname,userPrincipalName
但是,如果我同时使用两者,它会按预期工作:
https://graph.microsoft.com/v1.0/me?$select=businessPhones,displayName,givenName,jobTitle,mail,mobilePhone,officeLocation,preferredLanguage,surname,userPrincipalName,id&$expand=extensions
我怀疑这是默认字段选择周围的错误,但我会听从 Graph 团队的意见。上面的查询至少应该允许您在此期间继续前进。

关于microsoft-graph-api - 为什么 Microsoft Graph 需要 $select 和 $expand=extensions?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44558878/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com