Как получить пользователя по электронной почте? - PullRequest
0 голосов
/ 11 июня 2018

Я использую Graph-сервис для доступа к Microsoft Graph API.После этого документ , чтобы получить пользователя по электронной почте.Я написал блок кода:

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 голосов
/ 11 июня 2018

Операция /users, которую вы используете, предназначена для получения списка всех пользователей.
Вы можете запросить как одного пользователя, позвонив по телефону:

/ users / {id |userPrincipalName}

Эта операция принимает userId или userPrincipleName
, например,

/users/foo@bar.com
[большеинформация содержится в документации ]

В вашем случае код можно изменить на:

//...
var myUPN = "lgomez@my-company.com"
service.get('/users/' + myUPN).then(response => {
  console.log(response.data);
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...