как получить пользовательские свойства, указав идентификатор электронной почты с помощью CSOM-NODEJS - PullRequest
0 голосов
/ 29 сентября 2019

Я хочу получить все пользовательские свойства пользователя, для которого я буду предоставлять идентификатор электронной почты из интерфейса API.

После большого количества исследований я нашел его csom-узел (https://github.com/vgrem/CSOMNode), который может помочь мне выполнить то же самое.

до сих пор я не смог добиться проверки, если следующее свойствосуществует и распечатывает их на консоли: имя пользователя, расширенное свойство, SharePointGroups, DisplayName, фамилия, GivenName SharePointUserProfileProperties настраиваемые ключи.

router.post('/sptest', function (req, res) {

  const target_user = `i:0#.f|membership|${req.body.email}`;
  console.log('target_user', target_user);
  csomapi.setLoaderOptions({
    url: settings.sp.url,
    packages: ['userprofile']
  }); //set CSOM library settings

  var authCtx = new AuthenticationContext(settings.sp.url);
  authCtx.acquireTokenForUser(settings.sp.username, settings.sp.password,         
function (err, data) {
    var ctx = new SP.ClientContext(authCtx.path);
    authCtx.setAuthenticationCookie(ctx);
    var web = ctx.get_web();

    var peopleManager = new SP.UserProfiles.PeopleManager(ctx);
    var userProperties = peopleManager.getPropertiesFor(target_user);
    //load user profile properties such as Personal Site Url

    ctx.load(userProperties);
    ctx.executeQueryAsync(onRequestSuccess, onRequestFail);

    // This function runs if the executeQueryAsync call succeeds.
    function onRequestSuccess() {

      // Get a property directly from the PersonProperties object.
      var messageText = " \"DisplayName\" property is " +
        userProperties.get_displayName();

      // Get a property from the UserProfileProperties property.
      messageText += "<br />\"Department\" property is " +
        userProperties.get_userProfileProperties()['Department'];

    }

    // This function runs if the executeQueryAsync call fails.
    function onRequestFail(sender, args) {
      // $get("results").innerHTML = "Error: " + args.get_message();

    }  });});

что нужно изменить, чтобы получить то же самое?

...