سؤال

لقد قمت بنجاح بنشر تطبيق 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)

أذونات التطبيق

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى sharepoint.stackexchange
scroll top