Pregunta

He implementado con éxito una aplicación Hosted de SharePoint a Office 365 y mi localización local en la instalación de la premisa.Toda la aplicación tiene como objetivo hacer es llamar a la API de reposo para que el Administrador de perfiles de usuario obtenga las propiedades de perfil de un usuario.No importa cómo intento llamar a la API que falla.

1) Si intento llamarlo usando $.getJson y la URL como http://host web url/_api/SP.UserProfiles.PeopleManager/GetMyProperties, falla para la llamada de dominio cruzado.

2) Si intento usar la ejecutora de solicitud y la URL como http://app web url/_api/SP.UserProfiles.PeopleManager/GetMyProperties, falla (no encontrado).

3) Si trato de usar la ejecutora de solicitud y la URL como http://app web url/_api/SP.AppContextSite(@t)/SP.UserProfiles.PeopleManager/GetMyProperties?@t='" + encodeURIComponent(hostweburl) + "'";Falla en el acceso denegado y / o no encontrado.

Si uso exactamente el mismo SP.AppContextSite y intenta simplemente obtener el título de la web, funciona bien.

¿Es el SP.AppContextSite limitado a solo el objeto web?¿Hay alguna forma de llamar a la API de descanso de los perfiles de usuario de una aplicación alojada de SharePoint?

¿Fue útil?

Solución

Configure los permisos en User Profiles = Read como se menciona en la respuesta de ROB y luego el siguiente código debería funcionar.No necesitamos usar el ejecutor de Solicitud, ya que no estamos haciendo una llamada de dominio cruzado aquí.

$.ajax({

    url:"http://<app web url>/_api/SP.UserProfiles.PeopleManager/GetMyProperties",
    headers:{ Accept:"application/json;odata=verbose" },
    success:function(data){
      alert(data.d.DisplayName);
    },
    error:function(jQxhr,errorCode,errorThrown){
      alert(errorThrown);
    }
});

Otros consejos

¿Su solicitud de aplicación lee permisos para los perfiles de usuario?

ingrese la descripción de la imagen aquí

Tienes que agregar los permisos en orden también.Inquilino primero, luego los perfiles de usuario (social)

Permisos de aplicaciones

Licenciado bajo: CC-BY-SA con atribución
scroll top