如何使用PeoplePicker获取用户部门,电话号码



我在SPO (SPFX react js应用程序)工作,并成功PeoplePicker工作,但我想知道如何获得console.log部门和phoneNumber(已经可以获得loginName, id, displayName)

控制台中手机未定义。我不知道应该用什么名字把它们放到控制台

import * as React from 'react';
import * as PropTypes from 'prop-types';
import { PeoplePicker, PrincipalType } from "@pnp/spfx-controls-react/lib/PeoplePicker";
const PersonGroupPicker = ({props, onValueChange}) =>{
const handleChange = (items: any[]) => {
let selectedUsers : any = [];
console.log("itemy->", items);
items.forEach( (item: {id: number, loginName: string, text: string, mobilePhone: number}) =>{
selectedUsers.push({id: item.id, email: (item.loginName).replace("i:0#.f|membership|",""), displayName: item.text, mobilePhone: item.mobilePhone});
});
console.log("items", items, "selected", selectedUsers, "context",props.context);
onValueChange(selectedUsers);
};
return <PeoplePicker
context={props.context}
titleText={props.title}
personSelectionLimit={props.maxPerson}
groupName={props.groupName ? props.groupName : ""} // Leave this blank in case you want to filter from all users 
showtooltip={props.tooltip == undefined ? true : props.tooltip}
required={props.required == undefined ? false : props.required}
disabled={props.disabled == undefined ? false : props.disabled}
onChange={handleChange}
showHiddenInUI={props.showHidden == undefined ? true : props.showHidden}
principalTypes={props.principalType ? props.principalType : [PrincipalType.User]}
resolveDelay={props.resolveDelay == undefined ? 1000 : props.resolveDelay}
errorMessage={props.error ? props.error : ""}
placeholder={props.placeholder ? props.placeholder : ""}
tooltipMessage={props.tooltipMessage ? props.tooltipMessage : ""}
defaultSelectedUsers={props.defaultSelectedUsers && props.defaultSelectedUsers.length ? props.defaultSelectedUsers : []}
ensureUser={true}
/>;
};

PersonGroupPicker.propTypes = {
props: PropTypes.shape({
context: PropTypes.any.isRequired, 
title: PropTypes.string.isRequired,
maxPerson: PropTypes.number.isRequired,
groupName: PropTypes.string,
tooltip: PropTypes.bool,
required: PropTypes.bool,
disabled: PropTypes.bool,
showHidden: PropTypes.bool,
principalType: PropTypes.arrayOf(PropTypes.number),
resolveDelay: PropTypes.number,
error: PropTypes.string,
placeholder: PropTypes.string,
tooltipMessage: PropTypes.string,
defaultSelectedUsers: PropTypes.arrayOf(PropTypes.string)
}),
onValueChange: PropTypes.func.isRequired

};
export default PersonGroupPicker;

<PeoplePicker>控件不查询mobilePhonedepartment属性。所以,它根本没有这些属性(也就是说,你无法在控制台中获得这样的属性)。如果你想要它们,你需要自己从活动目录或SharePoint用户配置文件中获取它们,例如使用grapha调用或SharePoint REST API调用。

你可以看看"spfx控件"库(并查看所请求的属性):https://github.com/pnp/sp-dev-fx-controls-react/blob/450b6643c7aff1300e5d96e6b0042aef11d956b0/src/services/PeopleSearchService.ts#L221-L230

最新更新