gpt4 book ai didi

sharepoint - 如何使用 SharePoint 客户端 API 获取所有用户配置文件?

转载 作者:行者123 更新时间:2023-12-02 21:35:21 34 4
gpt4 key购买 nike

为了实现生日的 SharePoint 2013 应用程序,我需要从网站集中获取所有用户配置文件。为此,我想使用一个(或多个)客户端 API。请参阅http://msdn.microsoft.com/en-us/library/jj163800.aspx#bkmk_APIversions .

不幸的是,我在 API 描述中找不到与 Microsoft.Office.Server.UserProfiles 等效的内容。 。有Microsoft.SharePoint.Client.UserProfiles.PeopleManager两种方法,GetUserProfilePropertiesForGetUserProfilePropertyFor ,仅获取单个用户配置文件。

所以我的问题是:如何使用 CSOM、JSOM、REST(或任何客户端技术)获取网站集中的所有用户配置文件?

最佳答案

由于 CSOM 提供了与人员每个用户范围相关的操作方法,因此您可以首先使用 SP.Web.siteUsers property 检索所有网站用户。 。然后使用 SP.UserProfiles.PeopleManager.getUserProfilePropertyFor Method获取 BirthDay 属性,如下所示:

//Get Birthday User Profile Property for Site Users 
function getUsersBirthdays(Success,Error) {
var clientContext = new SP.ClientContext.get_current();
var web = clientContext.get_web();

var users = web.get_siteUsers();
clientContext.load(users);
clientContext.executeQueryAsync(
function() {
var peopleManager = new SP.UserProfiles.PeopleManager(clientContext);
var personsProperties = [];
for(var i = 0; i < users.get_count();i++)
{
var user = users.getItemAtIndex(i);
var personBirthday = peopleManager.getUserProfilePropertyFor(user.get_loginName(),'SPS-Birthday');
personsProperties.push(personBirthday);
}

clientContext.executeQueryAsync(
function() {
Success(personsProperties);
},
Error);

},
Error);



}



//Usage
var scriptbase = _spPageContextInfo.webAbsoluteUrl + '/_layouts/15/';
$.getScript(scriptbase + 'SP.js', function () {
$.getScript(scriptbase + 'SP.UserProfiles.js', function () {
getUsersBirthdays(function(usersProperties){
for(var i = 0; i < usersProperties.length;i++)
{
console.log(usersProperties[i].get_value());
}
},
function(sender,args){
console.log(args.get_message());
});
});
});

关于sharepoint - 如何使用 SharePoint 客户端 API 获取所有用户配置文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21548279/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com