我正在使用图形服务来访问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会返回一个用户名单,这些用户需要花费很多资源来通过电子邮件获取单个用户对象。请帮我更新代码,该代码只能通过电子邮件返回用户的单个对象。
答案 0 :(得分:3)
您正在使用的操作/users
用于检索所有用户的列表
您可以通过致电:
/ users / {id | userPrincipalName}
此操作接受userId
或userPrincipleName
e.g。
/users/foo@bar.com
中
[更多信息在documentation]
在您的情况下,代码可以更改为:
//...
var myUPN = "lgomez@my-company.com"
service.get('/users/' + myUPN).then(response => {
console.log(response.data);
});