Microsoft Graph API不会返回我需要的属性

时间:2018-03-11 03:56:53

标签: c# microsoft-graph

尝试使用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如何......

使用Graph Explorer

进行尝试时
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"
    }

这是什么意思?我该如何检索我需要的属性?如果只有一些可用,是否有参考?在我知道哪些属性可用之前,我不想测试每一个属性..

2 个答案:

答案 0 :(得分:1)

  

/v1.0/users?$filter=startswith(显示名, 'Bassie')及$选择( 'AboutMe')

将正确执行,但c#sdk会将您的查询解析为以下格式

  

/v1.0/users?$filter=startswith(显示名, 'Bassie')及$选择= AboutMe

"BaseRequest.cs, ~line 310"

但是选择

  

/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