SharePoint 2013. Вызов REST API из приложения, размещенного на SharePoint.

sharepoint.stackexchange https://sharepoint.stackexchange.com//questions/61714

Вопрос

Я успешно развернул размещенное приложение 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 как упоминалось в ответе Роба, тогда следующий код должен работать.Нам не нужно использовать исполнитель запросов, поскольку здесь мы не делаем междоменный вызов.

$.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