Cursos
Módulo
Acceso a la información de fotos de usuario mediante Microsoft Graph - Training
Obtenga información sobre cómo crear una aplicación de JavaScript personalizada para recuperar información de fotos de usuario mediante Microsoft Graph.
Este explorador ya no se admite.
Actualice a Microsoft Edge para aprovechar las características y actualizaciones de seguridad más recientes, y disponer de soporte técnico.
Obtenga información para la recuperación de propiedades de usuario y propiedades de perfil de usuario mediante programación con el modelo de objetos de JavaScript de SharePoint.
Las propiedades de usuario y las propiedades de perfil de usuario proporcionan información sobre los usuarios de SharePoint, como nombre para mostrar, correo electrónico, tratamiento y otra información empresarial y personal. En las API de cliente, el acceso a estas propiedades se realiza desde el objeto PersonProperties y su propiedad userProfileProperties. La propiedad userProfileProperties contiene todas las propiedades de perfil de usuario, pero el objeto PersonProperties contiene las propiedades de uso común (como accountName, displayName y email) cuyo acceso es más sencillo.
El objeto PeopleManager incluye los métodos siguientes que puede usar para recuperar propiedades de usuario y propiedades de perfil de usuario mediante el modelo de objetos de JavaScript:
El método getMyProperties y el método getPropertiesFor devuelven un objeto PersonProperties.
El método getUserProfilePropertiesFor y el método getUserProfilePropertyFor devuelven los valores de las propiedades de perfil de usuario que especifique.
Las propiedades de perfil de usuario de las API cliente son de solo lectura (excepto la imagen del perfil, que se puede cambiar mediante el método PeopleManager.setMyProfilePicture). Si quiere cambiar otras propiedades de perfil de usuario, tiene que usar el modelo de objetos de servidor. Para obtener más información sobre el trabajo con perfiles de usuario, consulte Trabajar con perfiles de usuario en SharePoint.
Nota
El objeto de cliente UserProfile no contiene todas las propiedades de usuario que tiene la versión de servidor. No obstante, la versión de cliente proporciona los métodos para crear un sitio personal para el usuario actual. Para recuperarlo, use el método ProfileLoader.getUserProfile.
Para crear una página de la aplicación que use el modelo de objetos de JavaScript para recuperar las propiedades de usuario, necesitará:
SharePoint con perfiles creados para el usuario actual y un usuario de destino
Visual Studio 2012
Office Developer Tools para Visual Studio 2013
Permisos de conexión Control total para obtener acceso a la aplicación del servicio Perfil de usuario del usuario actual
En el servidor en el que se ejecuta SharePoint, abra Visual Studio y elija Archivo, Nuevo y Proyecto.
En el cuadro de diálogo Nuevo proyecto, elija .NET Framework 4.5 en la lista desplegable situada en la parte superior del cuadro de diálogo.
En la lista Plantillas, expanda Office/SharePoint, elija la categoría Soluciones de SharePoint y luego la plantilla Proyecto de SharePoint.
Ponga al proyecto el nombre UserProfilesJSOM y luego elija el botón Aceptar.
En el cuadro de diálogo Asistente para la personalización de SharePoint, escriba la dirección URL del sitio de SharePoint de destino, elija Implementar como solución de granja de servidores y luego el botón Finalizar.
En el Explorador de soluciones, abra el menú contextual del proyecto UserProfilesJSOM y agregue una carpeta asignada "Layouts" de SharePoint.
En la carpeta Diseños, abra el menú contextual de la carpeta UserProfilesJSOM y agregue una nueva página de aplicación de SharePoint llamada UserProfiles.aspx.
Nota: En los ejemplos de código de este artículo se define el código personalizado del marcado de página, pero no se usa el archivo de clase de código subyacente que crea Visual Studio para la página.
Abra el menú contextual de la página UserProfiles.aspx y elija Establecer como elemento de inicio.
En el marcado de la página UserProfiles.aspx, pegue el siguiente código dentro de las etiquetas "Main" asp:Content. Este código agrega un control span que muestra los resultados de la consulta, los controles SharePoint:ScriptLink que hacen referencia a los archivos de la biblioteca de clases de JavaScript de SharePoint y las etiquetas script que van a contener la lógica personalizada.
<span id="results"></span><br />
<SharePoint:ScriptLink ID="ScriptLink1" name="SP.js" runat="server"
ondemand="false" localizable="false" loadafterui="true" />
<SharePoint:ScriptLink ID="ScriptLink2" name="SP.UserProfiles.js" runat="server"
ondemand="false" localizable="false" loadafterui="true" />
<script type="text/javascript">
// Replace this comment with the code for your scenario.
</script>
En el siguiente ejemplo de código se muestra cómo obtener propiedades de perfil de usuario de un usuario de destino mediante consulta al objeto PersonProperties y su propiedad userProfileProperties. Muestra cómo:
Obtener el objeto PersonProperties que representa al usuario de destino mediante el método getPropertiesFor. (Para obtener el objeto PersonProperties del usuario actual, use el método getMyProperties).
Obtener una propiedad directamente del objeto PersonProperties. En este ejemplo se obtiene la propiedad displayName.
Obtener una propiedad de la propiedad userProfileProperties del objeto PersonProperties. En este ejemplo se obtiene la propiedad Department.
Nota
Pegue el código siguiente entre las etiquetas script que agregó al archivo UserProfiles.aspx en el procedimiento Crear la página de aplicación. Reemplace el valor del marcador de posición domainName\\userName
antes de ejecutar el código (en este ejemplo de código no se usa el archivo de clase de código subyacente).
var personProperties;
// Ensure that the SP.UserProfiles.js file is loaded before the custom code runs.
SP.SOD.executeOrDelayUntilScriptLoaded(getUserProperties, 'SP.UserProfiles.js');
function getUserProperties() {
// Replace the placeholder value with the target user's credentials.
var targetUser = "domainName\\userName";
// Get the current client context and PeopleManager instance.
var clientContext = new SP.ClientContext.get_current();
var peopleManager = new SP.UserProfiles.PeopleManager(clientContext);
// Get user properties for the target user.
// To get the PersonProperties object for the current user, use the
// getMyProperties method.
personProperties = peopleManager.getPropertiesFor(targetUser);
// Load the PersonProperties object and send the request.
clientContext.load(personProperties);
clientContext.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 "
+ personProperties.get_displayName();
// Get a property from the UserProfileProperties property.
messageText += "<br />\\"Department\\" property is "
+ personProperties.get_userProfileProperties()['Department'];
$get("results").innerHTML = messageText;
}
// This function runs if the executeQueryAsync call fails.
function onRequestFail(sender, args) {
$get("results").innerHTML = "Error: " + args.get_message();
}
En el siguiente ejemplo de código se recuperan los valores de un conjunto especificado de propiedades de perfil de usuario de un usuario de destino mediante el método getUserProfilePropertiesFor. Muestra cómo:
Crear un objeto UserProfilePropertiesForUser que especifica el usuario de destino y las propiedades de perfil de usuario que se van a recuperar. En este ejemplo se obtienen las propiedades PreferredName y Department.
Obtener los valores de las propiedades especificadas mediante el método getUserProfilePropertiesFor y el paso del objeto UserProfilePropertiesForUser. (Para recuperar el valor de una única propiedad de perfil de usuario, use el método getUserProfilePropertyFor).
Obtener los valores de la matriz devuelta de valores de propiedad.
Nota
Pegue el código siguiente entre las etiquetas script que agregó al archivo UserProfiles.aspx en el procedimiento Crear la página de aplicación. Reemplace el valor del marcador de posición domainName\\\\userName
antes de ejecutar el código (en este ejemplo de código no se usa el archivo de clase de código subyacente).
var userProfileProperties;
// Ensure that the SP.UserProfiles.js file is loaded before the custom code runs.
SP.SOD.executeOrDelayUntilScriptLoaded(getUserProperties, 'SP.UserProfiles.js');
function getUserProperties() {
// Replace the placeholder value with the target user's credentials.
var targetUser = "domainName\\\\userName";
// Get the current client context and PeopleManager instance.
var clientContext = new SP.ClientContext.get_current();
var peopleManager = new SP.UserProfiles.PeopleManager(clientContext);
// Specify the properties to retrieve and target user for the
// UserProfilePropertiesForUser object.
var profilePropertyNames = ["PreferredName", "Department"];
var userProfilePropertiesForUser =
new SP.UserProfiles.UserProfilePropertiesForUser(
clientContext,
targetUser,
profilePropertyNames);
// Get user profile properties for the target user.
// To get the value for only one user profile property, use the
// getUserProfilePropertyFor method.
userProfileProperties = peopleManager.getUserProfilePropertiesFor(
userProfilePropertiesForUser);
// Load the UserProfilePropertiesForUser object and send the request.
clientContext.load(userProfilePropertiesForUser);
clientContext.executeQueryAsync(onRequestSuccess, onRequestFail);
}
// This function runs if the executeQueryAsync call succeeds.
function onRequestSuccess() {
var messageText = "\\"PreferredName\\" property is "
+ userProfileProperties[0];
messageText += "<br />\\"Department\\" property is "
+ userProfileProperties[1];
$get("results").innerHTML = messageText;
}
// This function runs if the executeQueryAsync call fails.
function onRequestFail(sender, args) {
$get("results").innerHTML = "Error: " + args.get_message();
}
Cursos
Módulo
Acceso a la información de fotos de usuario mediante Microsoft Graph - Training
Obtenga información sobre cómo crear una aplicación de JavaScript personalizada para recuperar información de fotos de usuario mediante Microsoft Graph.