如何通过电子邮件获取用户?

时间:2018-06-11 07:16:48

标签: node.js microsoft-graph

我正在使用图形服务来访问Microsoft Graph API。在document之后通过电子邮件获取用户。我写了一段代码:

var user = null;
const GraphService = require('graph-service');
const ClientCredentials = require('client-credentials');

const tenant = 'my-company.com';
const clientId = '0b13aa29-ca6b-42e8-a083-89e5bccdf141';
const clientSecret = 'lsl2isRe99Flsj32elwe89234ljhasd8239jsad2sl=';

const credentials = new ClientCredentials(tenant, clientId, clientSecret);

const service = new GraphService(credentials);

service.all('/users').then(response => {
      console.log(response.data);
      response.data.forEach(function(item) {
          if (item.userPrincipalName == "lgomez@my-company.com"){
            user = item;
            break;
          }
      });
    });

但是response.data会返回一个用户名单,这些用户需要花费很多资源来通过电子邮件获取单个用户对象。请帮我更新代码,该代码只能通过电子邮件返回用户的单个对象。

1 个答案:

答案 0 :(得分:3)

您正在使用的操作/users用于检索所有用户的列表 您可以通过致电:

以单个用户身份申请
  

/ users / {id | userPrincipalName}

此操作接受userIduserPrincipleName
e.g。

  

/users/foo@bar.com
  [更多信息在documentation]

在您的情况下,代码可以更改为:

//...
var myUPN = "lgomez@my-company.com"
service.get('/users/' + myUPN).then(response => {
  console.log(response.data);
});