SharePoint Online 开发篇:SharePoint Hosted Apps获取用户ID

网友投稿 244 2022-10-03

SharePoint Online 开发篇:SharePoint Hosted Apps获取用户ID

Blog链接:Hosted App获取用户ID时,你将发现SharePoint中的JavaScript Object Model(JSOM)比REST API更容易使用。

REST Protocol的第一个限制是它只返回100个条目,我还没有找到一个方法来增加这个,而使用JSOM可以获取所有用户的列表,并按照ID 排序。

比如我们需要list来保存User ID,然后分别使用REST API和JSOM获取用户列表的代码。

使用REST API来获得用户的列表,并按ID排序,Sample Code如下:

function getUsers() {    var pUrl = _spPageContextInfo.webAbsoluteUrl + "/_api/site/rootweb/lists/getByTitle('User Information List')/items?$orderby=Id";    //var pUrl = _spPageContextInfo.webAbsoluteUrl + "/_api/site/rootweb/lists/getByTitle('User Information List')/items?$orderby=Id&$select=Id,Title,Name,EMail";    $.ajax(pUrl, { method: "GET", headers: { "accept": "application/json;odata=verbose" } }).done(storeUsers).fail(getUserError);} function storeUsers(data) {    var responseParse = JSON.parse(data.body);    user_list = responseParse.d.results;} function getUserError(jqXHR, textStatus) {    alert(textStatus);}

但这只会返回100个项目,而使用JSOM可以获取按照User ID排序所有User 列表,sample Code如下:

function getAllUsers() {    var userInfoList = context.get_site().get_rootWeb().get_siteUserInfoList();     var camlQuery = new SP.CamlQuery();
    camlQuery.set_viewXml('');        userListItemCollection = userInfoList.getItems(camlQuery);     context.load(userListItemCollection);    //context.load(userListItemCollection, 'Include(Title,ID,Name,EMail)');     context.executeQueryAsync(onGetAllUsersSuccess, onGetAllUsersFail);} function onGetAllUsersSuccess() {    var userArr = [];    var arrNames = [];    var listEnumerator = userListItemCollection.getEnumerator();     while (listEnumerator.moveNext()) {        var oList = listEnumerator.get_current();         //avoid duplicates        var index = $.inArray(oList.get_item('Title'), arrNames);        if (index == -1) {            userArr.push({                Id: oList.get_item('ID'),                Title: oList.get_item('Title'),                Name: oList.get_item('Name'),                EMail: oList.get_item('EMail')            });            arrNames.push(oList.get_item('Title'));        }    }     user_list = userArr;} function onGetAllUsersFail(sender, args) {    alert("Unable to load user information: " + args.get_message());

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:SpringCloud实现灰度发布的方法步骤
下一篇:SharePoint Online 开发篇:App Part替代Content web part
相关文章

 发表评论

暂时没有评论,来抢沙发吧~