尝试使用ms图形API进行简单查询以获取用户的aboutMe
属性:
string filter = @"
startswith(displayName,'Bassie')
";
var users = await graphClient.Users
.Request()
.Filter(filter)
.Select("aboutMe")
.GetAsync();
但我只是继续
{代码:NotImplementedMessage:尚不支持此操作目标。内部错误}
InnerError不包含任何有用信息。
当我对mail
执行相同操作时,它工作正常。
这是为什么?我之前相当确定我已使用图形API检索了aboutMe
部分,但我不记得exaclty如何......
https://graph.microsoft.com/v1.0/users?$select('AboutMe')
它会返回这样的对象
"@odata.context": "https://graph.microsoft.com/v1.0/$metadata#users",
"@odata.nextLink": "https://graph.microsoft.com/v1.0/users?=%24select(%27AboutMe%27)&$skiptoken=X%2744537074020001000000273A24504A424632302D344D474E324C34484551384E40776F726C6579706172736F6E732E636F6D29557365725F62363964646464302D353865332D343537332D386639332D363033333731386231336237B900000000000000000000%27",
"value": [
{
"id": "d6a2b540-bd56-420f-bb46-bb46d6a2b540",
"businessPhones": [],
"displayName": "54-3-24",
"givenName": "user",
"jobTitle": null,
"mail": "user@domain.com",
"mobilePhone": null,
"officeLocation": null,
"preferredLanguage": null,
"surname": "surname",
"userPrincipalName": "username@domain.com"
}
这是什么意思?我该如何检索我需要的属性?如果只有一些可用,是否有参考?在我知道哪些属性可用之前,我不想测试每一个属性..
答案 0 :(得分:1)
/v1.0/users?$filter=startswith(显示名, 'Bassie')及$选择( 'AboutMe')
将正确执行,但c#sdk会将您的查询解析为以下格式
/v1.0/users?$filter=startswith(显示名, 'Bassie')及$选择= AboutMe
但是选择
/v1.0/users?$select=AboutMe
似乎抛出了NotImplementedException。
不确定这是否是错误,但我建议您提交bug report
答案 1 :(得分:1)
无法为用户集合检索aboutMe
实体的user
属性,仅针对单个用户(实体)支持检索此属性,如这样:
/beta/users/me?$select=aboutMe
请参阅this thread,其中列出了所有无法使用的属性 检索每个用户集合。
查询:
https://graph.microsoft.com/v1.0/users?$select('AboutMe')
无效,在您的情况下,选择查询选项表达式只是被忽略,因为它提供不正确,下面是如何指定select
查询选项的示例(更多详细信息请点击this article):< / p>
/beta/users?$select=email,displayName