有时,我会请求获取给定用户的多个字段的值。
以下是适用于给定用户的此类请求的示例(该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
答案 0 :(得分:0)
似乎其中一些属性对访客用户不可用。如果您要获取非访客用户,可以使用$filter
语法,例如https://graph.microsoft.com/v1.0/users?$filter=userType eq 'Member'