Я хочу получить все пользовательские свойства пользователя, для которого я буду предоставлять идентификатор электронной почты из интерфейса 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();
} });});
что нужно изменить, чтобы получить то же самое?