SharePoint 2013 SharePoint 호스팅 앱에서 REST API 호출
-
10-12-2019 - |
문제
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);
}
});
다른 팁
귀하의 앱이 사용자 프로필에 대한 읽기 권한을 요청합니까?
권한도 순서대로 추가해야 합니다.테넌트 먼저, 사용자 프로필(소셜)