在请求所有用户时,如何获得Microsoft Graph API的默认属性?

时间:2017-10-27 08:37:56

标签: rest azure-active-directory azure-ad-graph-api

我正在尝试从一个具有指定架构扩展的AAD租户中获取所有用户。 但是,在执行此请求时:

GraphServiceClient client = new GraphServiceClient(new AuthProv(_authHelper.GetAuthenticationResult()。Result));

  var userList = new List<User>();
  var users = await client.Users.Request().GetAsync();


  userList.AddRange(users.CurrentPage);
  while (users.NextPageRequest != null)
  {
    var nextPage = users.NextPageRequest.RequestUrl;
    Debug.WriteLine("Call To: " + users.NextPageRequest.RequestUrl);
    users = users.NextPageRequest.GetAsync().Result;
    userList.AddRange(users);
  }

我收到的JSON对象如下:

[{“businessPhones”:[],“displayName”:“some account name”,“userPrincipalName”:“somemail@email.com”,“id”:“123”,“givenName”:null,“jobTitle “:null,”mail“:null,”mobilePhone“:null,”officeLocation“:null,”preferredLanguage“:null,”surname“:null},...]

但是,我已经为用户定制了一个自己的属性,因此我可以从中检索值,但该属性不会随API响应一起发送。

如何更改请求以便将所有用户属性作为响应进行检索?

2 个答案:

答案 0 :(得分:1)

使用这个新的baseUrl:&#34; https://graph.microsoft.com/beta/&#34;

GraphServiceClient client = new GraphServiceClient(&#34; https://graph.microsoft.com/beta/&#34;,new AuthProv(_authHelper.GetAuthenticationResult()。Result),null);

答案 1 :(得分:0)

您似乎正在使用开放式扩展程序。如果是,我们需要明确地扩展扩展程序

以下是打印扩展名值的代码供您参考:

const regex = new RegExp("/\b?contact\b?", 'g');

const sites = {
  links: [{
      href: 'http://www.some-site.com/contact-us'
    },
    {
      href: 'http://www.some-site.com/about'
    },
    {
      href: 'http://www.some-site.com/admin'
    }
  ]
}

const fitered = sites.links.filter((link) => {
  return link.href.match(regex);
});

console.log(fitered);

如果有多个打开扩展程序页面,您还应通过 NextPageRequest 检索它。如果您还有问题,请随时告诉我。