Поделиться через


Как подписываться на документы, сайты и теги, используя службу REST в SharePoint

Создавайте приложения, размещаемые в SharePoint, которые используют службу REST для подписки на контент (документы, сайты и теги) и получения контента из подписки.

Как использовать службу REST SharePoint для подписки на контент?

Пользователи SharePoint могут подписаться на документы, сайты и теги для получения обновлений об элементах в свои каналы новостей и быстрого открытия документов и сайтов из подписки. Вы можете использовать API REST SharePoint в приложении или решении для начала подписки на контент, прекращения подписки на контент и получения контента из подписки от имени текущего пользователя.

Доступны следующие ресурсы REST, основного API для контента следующие задачи:

  • SocialRestFollowingManager предоставляет методы для управления пользовательского списка число субъектов.

  • SocialActor представляет документ, сайта или тег, сервер возвращает в ответ на запрос на стороне клиента.

  • SocialActorInfo указывает документ, сайта или тега в запросах со стороны клиента к серверу.

  • SocialActorType и SocialActorTypes укажите типы контента в запросах со стороны клиента к серверу.

Для выполнения следующих контента задач с помощью интерфейса API REST, службы REST отправки HTTP GET и POST HTTP-запросов. URI конечных точек REST для следующих контента задач начинаются с SocialRestFollowingManager ресурсов ( <siteUri>/_api/social.following) и заканчиваются ознакомьтесь со следующими ресурсами:

  • follow запуск отслеживание документа, сайта или тега

  • stopfollowing, чтобы отменить подписку на документ, сайта или тега

  • isfollowed, чтобы узнать, совместимо ли после пользователя конкретного документа, сайта или тега

  • my/followed, чтобы получить число документов, сайтов и тегов

  • my/followedcount для подсчета число документов, сайтов и тегов

Примечание.

Для следующих пользователей задачи, но followers и suggestions ресурсы, доступные из поддерживают только SocialRestFollowingManager, отслеживаемые пользователи не контента также использовать эти конечные точки. Дополнительные сведения о том, как использовать SocialRestFollowingManager, см. в разделах Отслеживание содержимого в SharePoint и Подписка на пользователей в SharePoint.

Необходимые условия для создания приложения с размещением в SharePoint, управляющего контентом из подписки с помощью службы REST SharePoint

В этой статье предполагается, что вы создаете надстройку для SharePoint с помощью Napa на сайте разработчика Office 365. Если вы используете эту среду разработки, у вас уже установлены необходимые компоненты.

Примечание.

Перейдите в раздел Настройка среды разработки для надстроек SharePoint на Office 365, чтобы зарегистрироваться на сайте разработчика и начать использовать Napa.

Если вы не используете Napa на Office 365 сайт разработчика, необходимо перед развертыванием Надстройка SharePoint выполняются следующие требования:

  • Среда разработки SharePoint, настроенная для изоляции приложений. При разработке удаленно, сервер должен поддерживать sideloading приложения или приложения необходимо установить на сайте разработчика.

  • Узел Личный сайт, настроены на личный сайт, созданный для текущего пользователя.

  • Visual Studio 2012 или Visual Studio 2013 с Инструменты разработчика Office для Visual Studio 2013.

  • Достаточные разрешения для пользователя, вошедшего в систему:

    • Разрешения локального администратора на компьютере разработчика.

    • Управление разрешениями веб-сайта и пользователей на создание дочерних сайтов на сайте SharePoint, на котором устанавливается приложение. По умолчанию эти разрешения есть только у пользователей, имеющих разрешения на полный доступ, или у участников группы владельцев сайта.

    • Необходимо войти в систему как кто-то отличную от учетной записи системы. Системная учетная запись не имеет разрешения, чтобы установить приложение.

Создание проекта надстройки SharePoint

  1. На сайте разработчика откройте Napa и выберите Добавить новый проект.

  2. Выберите шаблон приложение для SharePoint, назовите проект и затем нажмите кнопку Создать.

  3. Установка разрешений для вашего приложения:

    1. В нижней части страницы нажмите кнопку Свойства.

    2. В окне Свойства выберите разрешения.

    3. В разделе категория контента задайте разрешения Write для области клиента.

    4. В разделе категория социальных задайте разрешения Read для области Профили пользователей.

    5. Закройте окно свойств.

  4. Разверните узел скриптов, откройте файл App.js и замените его содержимое на код из одного из следующих сценариев:

  5. Чтобы запустить приложение, нажмите кнопку Запустить проект в нижней части страницы.

  6. В вы доверяете открывшейся странице нажмите кнопку Доверять его. Страница приложения открывает и выполняет код. Чтобы выполнить отладку страницы, нажмите клавишу F12 и выберите App.js на вкладке скрипта.

Пример кода: начало подписки и прекращение подписки на документ с помощью службы REST SharePoint

В следующем примере кода представляет содержимое файла App.js и показано, как:

  • Получите URI веб-приложения из строки запроса и создайте URI конечной <siteUri>/_api/social.following точки.

  • Создание и отправка запроса POST к конечной точке isfollowed , чтобы узнать, совместимо ли текущий пользователь уже после указанного документа.

  • Создание и отправка запроса POST к конечной точке follow запуск после документа.

  • Создание и отправка запроса POST к конечной точке stopfollowing , чтобы отменить подписку на документ.

  • Чтение ответа JSON, возвращенного запросом isfollowed и запросом follow . (Запрос stopfollowing не возвращает все действия в ответе.) В разделе ответы пример JSON.

Прежде чем запустить код необходимо отправить документ и измените значение заполнитель для переменной documentUrl URL-адрес документа.


// Replace the documentUrl placeholder value before you run the code.
var documentUrl = "https://domain.sharepoint.com/Shared%20Documents/fileName.docx";
var followingManagerEndpoint;

// Get the SPAppWebUrl parameter from the query string and build
// the Following manager endpoint.
$(document).ready(function () {
    var appweburl;
    var params = document.URL.split("?")[1].split("&amp;");
    for (var i = 0; i < params.length; i = i + 1) {
        var param = params[i].split("=");
        if (param[0] === "SPAppWebUrl") appweburl = param[1];
    }
    followingManagerEndpoint = decodeURIComponent(appweburl) + "/_api/social.following";
    isFollowed();
});

// Check whether the current user is already following the document.
// The request body includes a SocialActorInfo object that represents
// the specified item. 
// The success function reads the response from the REST service and then
// toggles the user's following status by calling the appropriate method.
function isFollowed() {
    $.ajax( {
        url: followingManagerEndpoint + "/isfollowed",
        type: "POST",
        data: JSON.stringify( { 
            "actor": {
                "__metadata": {
                    "type":"SP.Social.SocialActorInfo"
                },
                "ActorType":1,
                "ContentUri":documentUrl,
                "Id":null
            } 
        }),
        headers: { 
            "accept":"application/json;odata=verbose",
            "content-type":"application/json;odata=verbose",
            "X-RequestDigest":$("#__REQUESTDIGEST").val()
        },
        success: function (responseData) { 
            stringData = JSON.stringify(responseData);
            jsonObject = JSON.parse(stringData);
            if (jsonObject.d.IsFollowed === true ) {
                alert('The user is currently following the document.');
                stopFollowDocument();
            }
            else {
                alert('The user is currently NOT following the document.');
                followDocument();
            }
        },
        error: requestFailed
    });
}

// Make the current user start following a document.
// The request body includes a SocialActorInfo object that represents
// the document to follow.
// The success function reads the response from the REST service.
function followDocument() {
    $.ajax( {
        url: followingManagerEndpoint + "/follow",
        type: "POST",
        data: JSON.stringify( { 
            "actor": {
                "__metadata": {
                    "type":"SP.Social.SocialActorInfo"
                },
                "ActorType":1,
                "ContentUri":documentUrl,
                "Id":null
            } 
        } ),
        headers: { 
            "accept":"application/json;odata=verbose",
            "content-type":"application/json;odata=verbose",
            "X-RequestDigest":$("#__REQUESTDIGEST").val()
        },
        success: function (responseData) { 
            stringData = JSON.stringify(responseData);
            jsonObject = JSON.parse(stringData);
            var statusMessage = {
                0 : 'The user has started following the document. ',
                1 : 'The user is already following the document. ',
                2 : 'An internal limit was reached. ',
                3 : 'An internal error occurred. '
            }
            alert(statusMessage[jsonObject.d.Follow] + 'Status code = ' + jsonObject.d.Follow);
        },
        error: requestFailed
    } );
}

// Make the current user stop following a document.
// The request body includes a SocialActorInfo object that represents
// the document to stop following.
function stopFollowDocument() {
    $.ajax( {
        url: followingManagerEndpoint + "/stopfollowing",
        type: "POST",
        data: JSON.stringify( { 
            "actor": {
                "__metadata": {
                    "type":"SP.Social.SocialActorInfo"
                },
                "ActorType":1,
                "ContentUri":documentUrl,
                "Id":null
            } 
        } ),
        headers: { 
            "accept":"application/json;odata=verbose",
            "content-type":"application/json;odata=verbose",
            "X-RequestDigest":$("#__REQUESTDIGEST").val()
        },
        success: function () { 
            alert('The user has stopped following the document.');
        },
        error: requestFailed
    } );
}

function requestFailed(xhr, ajaxOptions, thrownError) {
    alert('Error:\\n' + xhr.status + '\\n' + thrownError + '\\n' + xhr.responseText);
}

Пример кода: начало подписки и прекращение подписки на сайт с помощью службы REST SharePoint

В следующем примере кода представляет содержимое файла App.js и показано, как:

  • Получите URI веб-приложения из строки запроса и создайте URI конечной <siteUri>/_api/social.following точки.

  • Создание и отправка запроса POST к конечной точке isfollowed , чтобы узнать, совместимо ли текущий пользователь уже после указанного сайта.

  • Создание и отправка запроса POST к конечной точке follow для запуска подписки на сайт.

  • Создание и отправка запроса POST к конечной точке stopfollowing , чтобы отменить подписку на сайт.

  • Чтение ответа JSON, возвращенного запросом isfollowed и запросом follow . (Запрос stopfollowing не возвращает все действия в ответе.) В разделе ответы пример JSON.

Прежде чем выполнять код измените значение заполнитель для переменной siteUrl в соответствии с сайта, которую требуется выполнить. Используйте формат http://server/siteCollection/site для сайта в семействе сайтов. Сайта можно выполнить с любой страницы или библиотеки на этом сайте. Если на сайте используется шаблон, который не поддерживает следующие (например, узел личных сайтов или личных сайтов), вы получите ошибку UnsupportedSite (код ошибки 10).


// Replace the siteUrl placeholder value before you run the code.
var siteUrl = "https://domain.sharepoint.com";
var followingManagerEndpoint;

// Get the SPAppWebUrl parameter from the query string and build
// the Following manager endpoint.
$(document).ready(function () {
    var appweburl;
    var params = document.URL.split("?")[1].split("&amp;");
    for (var i = 0; i < params.length; i = i + 1) {
        var param = params[i].split("=");
        if (param[0] === "SPAppWebUrl") appweburl = param[1];
    }
    followingManagerEndpoint = decodeURIComponent(appweburl) + "/_api/social.following";
    isFollowed();
});

// Check whether the current user is already following the site.
// The request body includes a SocialActorInfo object that represents
// the specified item. 
// The success function reads the response from the REST service and then
// toggles the user's following status by calling the appropriate method.
function isFollowed() {
    $.ajax( {
        url: followingManagerEndpoint + "/isfollowed",
        type: "POST",
        data: JSON.stringify( { 
            "actor": {
                "__metadata": {
                    "type":"SP.Social.SocialActorInfo"
                },
                "ActorType":2,
                "ContentUri":siteUrl,
                "Id":null
            } 
        }),
        headers: { 
            "accept":"application/json;odata=verbose",
            "content-type":"application/json;odata=verbose",
            "X-RequestDigest":$("#__REQUESTDIGEST").val()
        },
        success: function (responseData) { 
            stringData = JSON.stringify(responseData);
            jsonObject = JSON.parse(stringData);
            if (jsonObject.d.IsFollowed === true ) {
                alert('The user is currently following the site.');
                stopFollowSite();
            }
            else {
                alert('The user is currently NOT following the site.');
                followSite();
            }
        },
        error: requestFailed
    });
}

// Make the current user start following a site.
// The request body includes a SocialActorInfo object that represents
// the site to follow.
// The success function reads the response from the REST service.
function followSite() {
    $.ajax( {
        url: followingManagerEndpoint + "/follow",
        type: "POST",
        data: JSON.stringify( { 
            "actor": {
                "__metadata": {
                    "type":"SP.Social.SocialActorInfo"
                },
                "ActorType":2,
                "ContentUri":siteUrl,
                "Id":null
            } 
        } ),
        headers: { 
            "accept":"application/json;odata=verbose",
            "content-type":"application/json;odata=verbose",
            "X-RequestDigest":$("#__REQUESTDIGEST").val()
        },
        success: function (responseData) { 
            stringData = JSON.stringify(responseData);
            jsonObject = JSON.parse(stringData);
            var statusMessage = {
                0 : 'The user has started following the site. ',
                1 : 'The user is already following the site. ',
                2 : 'An internal limit was reached. ',
                3 : 'An internal error occurred. '
            }
            alert(statusMessage[jsonObject.d.Follow] + 'Status code = ' + jsonObject.d.Follow);
        },
        error: requestFailed
    } );
}

// Make the current user stop following a site.
// The request body includes a SocialActorInfo object that represents
// the site to stop following.
function stopFollowSite() {
    $.ajax( {
        url: followingManagerEndpoint + "/stopfollowing",
        type: "POST",
        data: JSON.stringify( { 
            "actor": {
                "__metadata": {
                    "type":"SP.Social.SocialActorInfo"
                },
                "ActorType":2,
                "ContentUri":siteUrl,
                "Id":null
            } 
        } ),
        headers: { 
            "accept":"application/json;odata=verbose",
            "content-type":"application/json;odata=verbose",
            "X-RequestDigest":$("#__REQUESTDIGEST").val()
        },
        success: function () { 
            alert('The user has stopped following the site.');
        },
        error: requestFailed
    } );
}

function requestFailed(xhr, ajaxOptions, thrownError) {
    alert('Error:\\n' + xhr.status + '\\n' + thrownError + '\\n' + xhr.responseText);
}

Пример кода: начало подписки и прекращение подписки с помощью службы REST SharePoint

В следующем примере кода представляет содержимое файла App.js и показано, как:

  • Получите URI веб-приложения из строки запроса и создайте URI конечной <siteUri>/_api/social.following точки.

  • Создание и отправка запроса POST к конечной точке isfollowed , чтобы узнать, совместимо ли текущий пользователь уже после указанного тега.

  • Создание и отправка запроса POST к конечной точке follow запуск после тега.

  • Создание и отправка запроса POST к конечной точке stopfollowing остановка после тега.

  • Чтение ответа JSON, возвращенного запросом isfollowed и запросом follow . (Запрос stopfollowing не возвращает все действия в ответе.) Для получения дополнительных сведений см ответы пример JSON.

Прежде чем выполнять код измените значение заполнитель для переменной tagGuid GUID существующего тега. Таксономия API, которая используется для извлечения тега из HashTagsTermSet не имеет REST-интерфейса, поэтому необходимо с помощью клиентской объектной модели .NET или JavaScript объектной модели. Узнайте, Как получить идентификатор GUID тега на основании имя тега с помощью объектной модели JavaScript для примера.


// Replace the tagGuid placeholder value before you run the code.
var tagGuid = "19a4a484-c1dc-4bc5-8c93-bb96245ce928";
var followingManagerEndpoint;

// Get the SPAppWebUrl parameter from the query string and build
// the Following manager endpoint.
$(document).ready(function () {
    var appweburl;
    var params = document.URL.split("?")[1].split("&amp;");
    for (var i = 0; i < params.length; i = i + 1) {
        var param = params[i].split("=");
        if (param[0] === "SPAppWebUrl") appweburl = param[1];
    }
    followingManagerEndpoint = decodeURIComponent(appweburl) + "/_api/social.following";
    isFollowed();
});

// Check whether the current user is already following the tag.
// The request body includes a SocialActorInfo object that represents
// the specified item. 
// The success function reads the response from the REST service and then
// toggles the user's following status by calling the appropriate method.
function isFollowed() {
    $.ajax( {
        url: followingManagerEndpoint + "/isfollowed",
        type: "POST",
        data: JSON.stringify( { 
            "actor": {
                "__metadata": {
                    "type":"SP.Social.SocialActorInfo"
                },
                "ActorType":3,
                "TagGuid":tagGuid,
                "Id":null
            } 
        }),
        headers: { 
            "accept":"application/json;odata=verbose",
            "content-type":"application/json;odata=verbose",
            "X-RequestDigest":$("#__REQUESTDIGEST").val()
        },
        success: function (responseData) { 
            stringData = JSON.stringify(responseData);
            jsonObject = JSON.parse(stringData);
            if (jsonObject.d.IsFollowed === true ) {
                alert('The user is currently following the tag.');
                stopFollowTag();
            }
            else {
                alert('The user is currently NOT following the tag.');
                followTag();
            }
        },
        error: requestFailed
    });
}

// Make the current user start following a tag.
// The request body includes a SocialActorInfo object that represents
// the tag to follow.
// The success function reads the response from the REST service.
function followTag() {
    $.ajax( {
        url: followingManagerEndpoint + "/follow",
        type: "POST",
        data: JSON.stringify( { 
            "actor": {
                "__metadata": {
                    "type":"SP.Social.SocialActorInfo"
                },
                "ActorType":3,
                "TagGuid":tagGuid,
                "Id":null
            } 
        } ),
        headers: { 
            "accept":"application/json;odata=verbose",
            "content-type":"application/json;odata=verbose",
            "X-RequestDigest":$("#__REQUESTDIGEST").val()
        },
        success: function (responseData) { 
            stringData = JSON.stringify(responseData);
            jsonObject = JSON.parse(stringData);
            var statusMessage = {
                0 : 'The user has started following the tag. ',
                1 : 'The user is already following the tag. ',
                2 : 'An internal limit was reached. ',
                3 : 'An internal error occurred. '
            }
            alert(statusMessage[jsonObject.d.Follow] + 'Status code = ' + jsonObject.d.Follow);
        },
        error: requestFailed
    } );
}

// Make the current user stop following a tag.
// The request body includes a SocialActorInfo object that represents
// the tag to stop following.
function stopFollowTag() {
    $.ajax( {
        url: followingManagerEndpoint + "/stopfollowing",
        type: "POST",
        data: JSON.stringify( { 
            "actor": {
                "__metadata": {
                    "type":"SP.Social.SocialActorInfo"
                },
                "ActorType":3,
                "TagGuid":tagGuid,
                "Id":null
            } 
        } ),
        headers: { 
            "accept":"application/json;odata=verbose",
            "content-type":"application/json;odata=verbose",
            "X-RequestDigest":$("#__REQUESTDIGEST").val()
        },
        success: function () { 
            alert('The user has stopped following the tag.');
        },
        error: requestFailed
    } );
}

function requestFailed(xhr, ajaxOptions, thrownError) {
    alert('Error:\\n' + xhr.status + '\\n' + thrownError + '\\n' + xhr.responseText);
}

Пример кода: получение контента из подписки с помощью службы REST SharePoint

В следующем примере кода представляет содержимое файла App.js и показано, как:

  • Получите URI веб-приложения из строки запроса и создайте URI конечной <siteUri>/_api/social.following точки.

  • Создание и отправка запроса GET к конечной точке my/followedcount для подсчета контента, выполнив текущего пользователя.

  • Создание и отправка запроса GET к конечной точке my/followed для получения содержимого, выполнив текущего пользователя.

  • Ознакомьтесь с JSON ответ, возвращенный в запросах. См. примеры ответов JSON.


var followingManagerEndpoint;
var followedCount;

// Get the SPAppWebUrl parameter from the query string and build
// the following manager endpoint.
$(document).ready(function () {
    var appweburl;
    var params = document.URL.split("?")[1].split("&amp;");
    for (var i = 0; i < params.length; i = i + 1) {
        var param = params[i].split("=");
        if (param[0] === "SPAppWebUrl") appweburl = param[1];
    }
    followingManagerEndpoint = decodeURIComponent(appweburl)+ "/_api/social.following";
    getMyFollowedCount();
} );

// Get the count of content that the current user is following.
// The "types=14" parameter specifies all content types
// (documents = 2 + sites = 4 + tags = 8).
function getMyFollowedCount() {
    $.ajax( {
        url: followingManagerEndpoint + "/my/followedcount(types=14)",
        headers: { 
            "accept": "application/json;odata=verbose"
        },
        success: function (data) { 
            followedCount = data.d.FollowedCount;
            getMyFollowedContent();
        },
        error: requestFailed
    } );
}

// Get the content that the current user is following.
// The "types=14" parameter specifies all content types
// (documents = 2 + sites = 4 + tags = 8).
function getMyFollowedContent() {
    $.ajax( {
        url: followingManagerEndpoint + "/my/followed(types=14)",
        headers: { 
            "accept": "application/json;odata=verbose"
        },
        success: followedContentRetrieved,
        error: requestFailed
    });
}

// Parse the JSON data and iterate through the collection.
function followedContentRetrieved(data) {
    var stringData = JSON.stringify(data);
    var jsonObject = JSON.parse(stringData); 
    var types = {
        1: "document",
        2: "site",
        3: "tag" 
    };
 
    var followedActors = jsonObject.d.Followed.results; 
    var followedList = "You're following " + followedCount + " items:";
    for (var i = 0; i < followedActors.length; i++) {
        var actor = followedActors[i];
        followedList += "<p>The " + types[actor.ActorType] + ": \\"" +
        actor.Name + "\\"</p>";
    } 
    $("#message").html(followedList); 
}

function requestFailed(xhr, ajaxOptions, thrownError) {
    alert('Error:\\n' + xhr.status + '\\n' + thrownError + '\\n' + xhr.responseText);
}

Примеры ответов JSON для запросов подписки на контент

По умолчанию службы REST возвращает ответы, отформатированные с помощью протокола Atom, но можно запросить формат JSON с помощью Accept заголовок HTTP (например: "accept":"application/json;odata=verbose"). Данные ответа возвращается в виде строки, и можно использовать функции JSON.stringify и JSON.parse для преобразования строки в объект, как показано в предыдущих примерах кода.

Для устранения ошибки, возвращенной службы REST в режиме отладки, посмотрите на свойство responseText, как показано в функции обратного вызова requestFailed в предыдущих примерах. Также вы можете получить идентификатор корреляции для журнала сервера ULS на прослушивания сети или отладчик HTTP, такие как Fiddler. Идентификатор корреляции — это то же, что код запроса в HTTP-ответа.

Пример ответа для конечной точки Follow

В ответ на клиентские запросы к конечной follow точке служба REST возвращает значение SocialFollowResult , указывающее, успешно ли выполнен запрос Follow .

Приведенный ниже ответ представляет состояние AlreadyFollowing.


{"d":{"Follow":1}}

В таблице 1 приведены коды состояния SocialFollowResult и их значения.

Таблица 1. Коды и значения SocialFollowResult

Код состояния Значение
0 OK. Текущий пользователь является теперь следующую субъект.
1 AlreadyFollowing. Текущий пользователь уже подписан субъект.
2 LimitReached. Запрос завершился ошибкой, так как достигнут внутренний предел.
3 InternalError. Не удалось выполнить запрос из-за внутренней ошибки.

Примечание.

[!Примечание] Службы REST не возвращает ответ на запрос StopFollowing. Она возвращает {"d":{"StopFollowing":null}}.

Пример ответа для конечной точки IsFollowed

В ответ на клиентские запросы к конечной isfollowed точке служба REST возвращает значение bool , указывающее, следует ли текущий пользователь указанному субъекту.

Приведенный ниже ответ указывает, что текущий пользователь не подписан указанный документ, сайта или тег.

{"d":{"IsFollowed":false}}

Пример ответа для конечной точки My/Followed

В ответ на клиентские запросы к конечной точке my/followed служба REST возвращает массив sp. Объекты Social.SocialActor , представляющие документы, сайты и теги, на которые следит текущий пользователь.

Приведенный ниже ответ представляет число документов, сайта и тег. Запрос указывает типы контента для включения.

{"d":{"Followed":{"results":[
  {"__metadata":{"type":"SP.Social.SocialActor"}
    "AccountName":null
    "ActorType":1
    "CanFollow":true
    "ContentUri":"https://domain.sharepoint.com:443/Shared%20Documents/fileName.docx"
    "EmailAddress":null
    "FollowedContentUri":null
    "Id":"2.089f4944a6374a64b52b7af5ba140392.9340a4837688405daa6b83f2b58f973d.
      51bbb5d8e214457ba794669345d23040.98b9fc73d5224265b039586688b15b98"
    "ImageUri":null
    "IsFollowed":true
    "LibraryUri":null
    "Name":"snippets.txt"
    "PersonalSiteUri":null
    "Status":0
    "StatusText":null
    "TagGuid":"00000000-0000-0000-0000-000000000000"
    "Title":null
    "Uri":"https://domain.sharepoint.com:443/Shared%20Documents/fileName.docx"
  }
  {"__metadata":{"type":"SP.Social.SocialActor"}
    "AccountName":null
    "ActorType":2
    "CanFollow":true
    "ContentUri":"https://domain.sharepoint.com:443/"
    "EmailAddress":null
    "FollowedContentUri":null
    "Id":"8.089f4944a6374a64b52b7af5ba140392.9340a4837688405daa6b83f2b58f973d.
      089f4944a6374a64b52b7af5ba140392.98b9fc73d5224265b039586688b15b98"
    "ImageUri":null
    "IsFollowed":true
    "LibraryUri":null
    "Name":"Developer Site"
    "PersonalSiteUri":null
    "Status":0
    "StatusText":null
    "TagGuid":"00000000-0000-0000-0000-000000000000"
    "Title":null
    "Uri":"https://domain.sharepoint.com:443/"
  }
  {"__metadata":{"type":"SP.Social.SocialActor"}
    "AccountName":null
    "ActorType":3
    "CanFollow":true
    "ContentUri":null
    "EmailAddress":null
    "FollowedContentUri":null
    "Id":"16.00000000000000000000000000000000.00000000000000000000000000000000.
      19a4a484c1dc4bc58c93bb96245ce928.98b9fc73d5224265b039586688b15b98"
    "ImageUri":null
    "IsFollowed":true
    "LibraryUri":null
    "Name":"#someTag"
    "PersonalSiteUri":null
    "Status":0
    "StatusText":null
    "TagGuid":"19a4a484-c1dc-4bc5-8c93-bb96245ce928"
    "Title":null
    "Uri":"https://domain-my.sharepoint.com:443/_layouts/15/HashTagProfile.aspx?
      TermID=19a4a484-c1dc-4bc5-8c93-bb96245ce928"
  }
]}}}

Пример ответа для конечной точки My/FollowedCount

В ответ на клиентские запросы к my/followedcount конечной точке служба REST возвращает значение Int32 , представляющее общее количество указанных типов субъектов, на которые следит текущий пользователь.

Приведенный ниже ответ представляет число три число документов, сайтов и/или теги. Запрос указывает типы контента для включения.


{"d":{"FollowedCount":3}}

См. также