为什么此Microsoft Graph请求适用于大多数用户,但为访客用户返回“错误请求 - 查询语法错误”?

时间:2018-02-12 18:34:40

标签: microsoft-graph

有时,我会请求获取给定用户的多个字段的值。

以下是适用于给定用户的此类请求的示例(该ID对应于“Member”类型的用户): https://graph.microsoft.com/v1.0/users/bba8407c-2f05-4e91-b27e-a207689a085f?$select=passwordProfile,aboutMe,accountEnabled,assignedLicenses,assignedPlans,birthday,businessPhones,city,companyName,country,department,displayName,givenName,hireDate,imAddresses,interests,jobTitle,mail,mailboxSettings,mailNickname,mobilePhone,mySite,officeLocation,onPremisesImmutableId,onPremisesLastSyncDateTime,onPremisesSecurityIdentifier,onPremisesSyncEnabled,passwordPolicies,pastProjects,postalCode,preferredLanguage,preferredName,provisionedPlans,proxyAddresses,responsibilities,schools,skills,state,streetAddress,surname,usageLocation,userPrincipalName,userType

这里没问题。但是对另一个“Guest”类型的用户做同样的请求,我得到一个Http 400(错误的请求)。这是一个失败的请求,即使格式完全相同: https://graph.microsoft.com/v1.0/users/3e3fac9d-ad76-4f9a-b86c-b4691a524572?$select=passwordProfile,aboutMe,accountEnabled,assignedLicenses,assignedPlans,birthday,businessPhones,city,companyName,country,department,displayName,givenName,hireDate,imAddresses,interests,jobTitle,mail,mailboxSettings,mailNickname,mobilePhone,mySite,officeLocation,onPremisesImmutableId,onPremisesLastSyncDateTime,onPremisesSecurityIdentifier,onPremisesSyncEnabled,passwordPolicies,pastProjects,postalCode,preferredLanguage,preferredName,provisionedPlans,proxyAddresses,responsibilities,schools,skills,state,streetAddress,surname,usageLocation,userPrincipalName,userType

因此请求语法是相同的,唯一改变的部分是用户ID。但第二个返回“错误请求 - 查询语法错误”。这里发生了什么?为什么我不能为访客用户做这个请求?

我可以为任何租户重现此问题。它永远不适用于任何访客用户。

失败请求的请求ID:49e80d99-5074-4404-900f-e1d14889bf2b

1 个答案:

答案 0 :(得分:0)

似乎其中一些属性对访客用户不可用。如果您要获取非访客用户,可以使用$filter语法,例如https://graph.microsoft.com/v1.0/users?$filter=userType eq 'Member'