SharePoint 2013 SharePointホストアプリからREST APIを呼び出します。
-
10-12-2019 - |
質問
Office 365と私のローカルの現地のインストールにSharePointホストアプリを展開しました。すべてのアプリは、ユーザーのプロファイルプロパティを取得するために、ユーザープロファイルマネージャのためにREST APIを呼び出すことです。それが失敗するAPIを呼び出しようとしていても。
1)$.getJson
とURLを使用して呼び出しようとすると、クロスドメイン呼び出しで失敗しました。
2)リクエストエグゼクタとURLを使用しようとすると、それが失敗した(見つかりません)。
3)要求エグゼクティマとURLをhttp://host web url/_api/SP.UserProfiles.PeopleManager/GetMyProperties
として使用しようとすると。それはアクセス拒否および/または見つからないアクセスで失敗します。
まったく同じhttp://app web url/_api/SP.UserProfiles.PeopleManager/GetMyProperties
を使用し、単にWebのタイトルを取得しようとした場合、それは正にうまく機能します。
http://app web url/_api/SP.AppContextSite(@t)/SP.UserProfiles.PeopleManager/GetMyProperties?@t='" + encodeURIComponent(hostweburl) + "'"
はWebオブジェクトだけに制限されていますか?SharePointホストアプリからユーザープロファイルREST APIを呼び出す方法はありますか?
解決
Robの答えで上記のようにUser Profiles = Read
にアクセス許可を設定し、次のコードが機能するはずです。私たちはここにクロスドメインを呼び出していないので要求エグゼクターを使用する必要はありません。
$.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);
}
});
. 他のヒント
あなたのアプリはユーザープロファイルへのアクセス許可を要求しますか?
権限も順番に追加する必要があります。最初にテナント、それからユーザープロファイル(社会)