문제

SharePoint 호스팅 앱을 Office 365 및 로컬 온프레미스 설치에 성공적으로 배포했습니다.앱의 모든 목표는 사용자 프로필 관리자에 대한 REST API를 호출하여 사용자의 프로필 속성을 가져오는 것입니다.API를 어떻게 호출하려고 해도 실패합니다.

1) 다음을 사용하여 호출하려고 하면 $.getJson 그리고 URL은 다음과 같습니다 http://host web url/_api/SP.UserProfiles.PeopleManager/GetMyProperties 도메인 간 호출에 실패합니다.

2) 요청 실행기와 URL을 다음과 같이 사용하려고 하면 http://app web url/_api/SP.UserProfiles.PeopleManager/GetMyProperties 실패합니다(찾을 수 없음).

3) 요청 실행기와 URL을 다음과 같이 사용하려고 하면 http://app web url/_api/SP.AppContextSite(@t)/SP.UserProfiles.PeopleManager/GetMyProperties?@t='" + encodeURIComponent(hostweburl) + "'";액세스가 거부되거나 찾을 수 없으면 실패합니다.

내가 똑같은 것을 사용한다면 SP.AppContextSite 단순히 웹 제목을 얻으려고 하면 잘 작동합니다.

SP.AppContextSite 웹 개체에만 국한됩니까?SharePoint 호스팅 앱에서 사용자 프로필 REST API를 호출할 수 있는 방법이 있나요?

도움이 되었습니까?

해결책

권한 설정 User Profiles = Read Rob의 답변에서 언급한 대로 다음 코드가 작동합니다.여기서는 도메인 간 호출을 하지 않으므로 요청 실행기를 사용할 필요가 없습니다.

$.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);
    }
});

다른 팁

귀하의 앱이 사용자 프로필에 대한 읽기 권한을 요청합니까?

enter image description here

권한도 순서대로 추가해야 합니다.테넌트 먼저, 사용자 프로필(소셜)

App Permissions

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 sharepoint.stackexchange
scroll top