SharePoint userProfileProperties JSOM (объектная модель JavaScript)
Я пытаюсь получить некоторую информацию из функции PeopleManager.getMyProperties(). Я получаю объект, некоторые значения имеют значение null. Когда я проверяю его в профиле пользователя из Управления, я вижу значение. Как я могу это исправить?
Вот мой рабочий код для получения объекта.
Примечание. Я хочу получить доступ к пользовательскому свойству из профиля пользователя, который я создал ранее. Я могу видеть свойство в объекте, но значение не приходит.
Спасибо вам всем..
$(document).ready(function(){
SP.SOD.executeOrDelayUntilScriptLoaded(loadUserData, 'SP.UserProfiles.js');
});
var userProfileProperties;
function loadUserData(){
//Get Current Context
var clientContext = new SP.ClientContext.get_current();
//Get Instance of People Manager Class
var peopleManager = new SP.UserProfiles.PeopleManager(clientContext);
//Get properties of the current user
userProfileProperties = peopleManager.getMyProperties();
clientContext.load(userProfileProperties);
//Execute the Query.
clientContext.executeQueryAsync(onSuccess, onFail);
}
function onSuccess() {
console.log(userProfileProperties)
}
function onFail(sender, args) {
console.log("Error: " + args.get_message());
}
2 ответа
Я забыл написать решение, извините за это.
Я попробовал код, написанный @NaveenPrasath. Он дает много полей, но не возвращает "Custom Prop Field".
Рабочий код показан ниже.
function getUserProperties(targetUser) {
var clientContext = new SP.ClientContext.get_current();
var peopleManager = new SP.UserProfiles.PeopleManager(clientContext);
personProperties = peopleManager.getPropertiesFor(targetUser);
clientContext.load(personProperties);
clientContext.executeQueryAsync(onRequestSuccess, onRequestFail);
}
function onRequestSuccess() {
var fullName = personProperties.get_userProfileProperties()['CustomPropField'];
}
Попробуйте приведенный ниже код и дайте мне знать. Он отлично работает для меня. Я передал имя пользователя вместо моей учетной записи. Так что вы можете передать любую учетную запись пользователя здесь.
function getUserProperties(userName) {
var clientContext = new SP.ClientContext.get_current();
var peopleManager = new SP.UserProfiles.PeopleManager(clientContext);
var profilePropertyNames = ["FirstName", "LastName", "CustomProperty"]; //Have to load all the needed properties here
var targetUser = userName.trim();
var userProfilePropertiesForUser = new SP.UserProfiles.UserProfilePropertiesForUser(clientContext, targetUser, profilePropertyNames);
userProfileProperties = peopleManager.getUserProfilePropertiesFor(userProfilePropertiesForUser);
clientContext.load(userProfilePropertiesForUser);
clientContext.executeQueryAsync(onSuccess, onFail);
}
function onSuccess() {
// userProfileProperties result index is same as the properties loaded above
var firstName=userProfileProperties[0];
var lastName=userProfileProperties[1];
var customprop=userProfileProperties[2];
}
Отметьте это как ответ, если это поможет.