SharePoint 2013 اتصل بـ REST API من تطبيق SharePoint المستضاف
-
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
يقتصر على كائن الويب فقط؟هل هناك أي طريقة لاستدعاء ملفات تعريف المستخدمين REST API من تطبيق SharePoint المستضاف؟
المحلول
اضبط الأذونات على 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);
}
});
نصائح أخرى
هل طلب تطبيقك قراءة الأذونات لمحات المستخدم؟
يجب عليك إضافة الأذونات بالترتيب أيضا.المستأجر أولا، ثم ملفات تعريف المستخدمين (Social)