Seguir documentos, sites e marcas usando o serviço de REST no SharePoint
Crie aplicativos hospedados no SharePoint que usam o serviço de REST para acompanhar o conteúdo (documentos, sites e marcas) e para obter o conteúdo seguido.
Como usar o serviço de REST do SharePoint para seguir conteúdo?
Os usuários do SharePoint podem seguir documentos, sites e marcas para obter atualizações sobre os itens nos seus news feeds e abrir rapidamente os sites e documentos seguidos. Você pode usar a API de REST do SharePoint em seu aplicativo ou solução para começar a seguir conteúdo, parar de seguir conteúdo e obter o conteúdo seguido em nome do usuário atual.
Os seguintes recursos REST são a API principal para conteúdo seguintes tarefas:
SocialRestFollowingManager fornece métodos para gerenciar a lista de um usuário de atores visitados.
SocialActor representa um documento, site ou marca que o servidor retorna em resposta a uma solicitação do cliente.
SocialActorInfo Especifica um documento, site ou marca em solicitações de cliente para o servidor.
SocialActorType e SocialActorTypes especificam os tipos de conteúdo em solicitações de cliente para o servidor.
Para executar tarefas seguinte conteúdo usando a API REST, você envia HTTP GET e POST de solicitações HTTP para o serviço REST. Do ponto de extremidade do REST URIs para tarefas seguinte conteúdo começam com o recurso de SocialRestFollowingManager ( <siteUri>/_api/social.following
) e terminam com um dos seguintes recursos:
follow para iniciar a acompanhar um documento, um site ou uma marca
stopfollowing para deixar de seguir a um documento, site ou marca
isfollowed para descobrir se o usuário está seguindo um documento específico, site ou marca
my/followed obter documentos seguidos, sites e marcas
my/followedcount para obter a contagem de documentos seguidos, sites e marcas
Observação
Você também pode usar esses pontos de extremidade para tarefas de pessoas a seguir, mas os recursos followers e suggestions disponíveis no suporte somente SocialRestFollowingManager, seguindo pessoas, não o conteúdo. Para obter mais informações sobre como você pode usar SocialRestFollowingManager, confira Seguir conteúdo no SharePoint e Seguir pessoas no SharePoint.
Pré-requisitos para a criação de um aplicativo hospedado no SharePoint que gerencia o conteúdo que seguem usando o serviço de REST de SharePoint
Este artigo pressupõe que você crie o Suplemento do SharePoint usando Napa em um Office 365 Site do desenvolvedor. Se você estiver usando esse ambiente de desenvolvimento, já atendeu aos pré-requisitos.
Observação
Vá para Configurar um ambiente de desenvolvimento para suplementos do SharePoint no Office 365 para se inscrever em um Site de Desenvolvedor e começar a usar o Napa.
Se você não estiver usando Napa em um Office 365 Site do desenvolvedor, você precisará atender aos seguintes pré-requisitos antes de implantar o Suplemento do SharePoint:
Um ambiente de desenvolvimento SharePoint que esteja configurado para isolamento de aplicativo. Se você estiver desenvolvendo remotamente, o servidor deve suportar sideloading de aplicativos ou você deve instalar o aplicativo em um Site do desenvolvedor.
O host de My Site configurado, com um site pessoal criado para o usuário atual.
Visual Studio 2012 ou Visual Studio 2013 com Office Developer Tools para Visual Studio 2013.
Permissões suficientes para o usuário conectado:
Permissões de administrador local no computador de desenvolvimento.
Gerencie permissões de usuário do site e crie Subsites no site do SharePoint onde você está instalando o aplicativo. Por padrão, essas permissões estão disponíveis apenas para os usuários que possuam o nível de permissão Controle Total, ou que estejam no grupo de Proprietários do site.
Você deve estar conectado como alguém que não seja a conta do sistema. A conta do sistema não tem permissão para instalar o aplicativo.
Observação
Consulte Configurar um ambiente de desenvolvimento local para suplementos do SharePoint para obter diretrizes sobre a instalação local (incluindo como desabilitar o marcar de loopback, se necessário).
Criar o projeto de Suplemento do SharePoint
Em seu Site do desenvolvedor, abra Napa e escolha Adicionar novo projeto.
Escolha o modelo de aplicativo para o SharePoint, nomeie o projeto e, em seguida, clique no botão criar.
Defina as permissões para seu aplicativo:
Escolha o botão Propriedades na parte inferior da página.
Na janela Propriedades, escolha as permissões.
Na categoria de conteúdo, defina permissões de Write para o escopo de locatário.
Na categoria Social, defina permissões de Read para o escopo de Perfis de usuário.
Feche a janela Propriedades.
Expanda o nó de Scripts, escolha o arquivo App.js e substitua o seu conteúdo com o código de um dos seguintes cenários:
Para executar o aplicativo, escolha o botão Executar projeto na parte inferior da página.
Na página você confia que é aberta, escolha o botão Confiança-lo. A página de app abre e executa o código. Para depurar a página, escolha a tecla F12 e escolha App.js na guia Script.
Exemplo de código: começar a seguir e parar de seguir um documento usando o serviço de REST do SharePoint
O exemplo de código a seguir representa o conteúdo do arquivo App.js e mostra como:
Obtenha o URI Web do aplicativo na cadeia de caracteres de consulta e construa o URI do
<siteUri>/_api/social.following
ponto de extremidade.Criar e enviar uma solicitação de POST ao ponto de extremidade
isfollowed
para descobrir se o usuário atual já está seguindo um documento especificado.Criar e enviar uma solicitação de POST ao ponto de extremidade
follow
para iniciar seguindo o documento.Criar e enviar uma solicitação de POST ao ponto de extremidade
stopfollowing
para deixar de seguir o documento.Leia a resposta JSON retornada pela solicitação
isfollowed
e pela solicitaçãofollow
. (A solicitaçãostopfollowing
não retorna nada na resposta.) Consulte exemplo JSON respostas.
Antes de executar o código, você precisará carregar um documento e altere o valor de espaço reservado para a variável documentUrl a URL do documento.
// 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("&");
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);
}
Exemplo de código: começar a seguir e parar de seguir um site usando o serviço de REST do SharePoint
O exemplo de código a seguir representa o conteúdo do arquivo App.js e mostra como:
Obtenha o URI Web do aplicativo na cadeia de caracteres de consulta e construa o URI do
<siteUri>/_api/social.following
ponto de extremidade.Criar e enviar uma solicitação de POST ao ponto de extremidade
isfollowed
para descobrir se o usuário atual já está seguindo um site especificado.Criar e enviar uma solicitação de POST ao ponto de extremidade
follow
para iniciar seguindo o site.Criar e enviar uma solicitação de POST ao ponto de extremidade
stopfollowing
para deixar de seguir o site.Leia a resposta JSON retornada pela solicitação
isfollowed
e pela solicitaçãofollow
. (A solicitaçãostopfollowing
não retorna nada na resposta.) Consulte exemplo JSON respostas.
Antes de executar o código, altere o valor de espaço reservado para a variável siteUrl coincidir com o site que você deseja seguir. Use o formato http://server/siteCollection/site para um site em um conjunto de sites. Você pode seguir a um site de qualquer página ou a biblioteca neste site. Se o site usa um modelo que não tem suporte para seguindo (como o host de Meu Site ou um site pessoal), você receberá um erro de UnsupportedSite (código de erro 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("&");
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);
}
Exemplo de código: começar a seguir e parar de seguir uma marca (tag) usando o serviço de REST do SharePoint
O exemplo de código a seguir representa o conteúdo do arquivo App.js e mostra como:
Obtenha o URI Web do aplicativo na cadeia de caracteres de consulta e construa o URI do
<siteUri>/_api/social.following
ponto de extremidade.Criar e enviar uma solicitação de POST ao ponto de extremidade
isfollowed
para descobrir se o usuário atual já está seguindo a uma marca especificada.Criar e enviar uma solicitação de POST ao ponto de extremidade
follow
para iniciar após a marca.Criar e enviar uma solicitação de POST ao ponto de extremidade
stopfollowing
para parar após a marca.Leia a resposta JSON retornada pela solicitação
isfollowed
e pela solicitaçãofollow
. (A solicitaçãostopfollowing
não retorna nada na resposta.) Para obter mais informações, consulte exemplo JSON respostas.
Antes de executar o código, altere o valor de espaço reservado para a variável tagGuid no GUID de uma marca existente. Taxonomia API que você pode usar para recuperar uma marca do HashTagsTermSet não tem uma interface REST, portanto você terá que usar o modelo de objeto do cliente .NET ou do modelo de objeto do JavaScript. Consulte Como obter o GUID de uma marca com base no nome da marca usando o modelo de objeto do JavaScript para obter um exemplo.
// 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("&");
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);
}
Exemplo de código: obter o conteúdo seguido usando o serviço de REST do SharePoint
O exemplo de código a seguir representa o conteúdo do arquivo App.js e mostra como:
Obtenha o URI Web do aplicativo na cadeia de caracteres de consulta e construa o URI do
<siteUri>/_api/social.following
ponto de extremidade.Criar e enviar uma solicitação de GET ao ponto de extremidade
my/followedcount
para obter a contagem de conteúdo que o usuário atual está seguindo.Criar e enviar uma solicitação de GET ao ponto de extremidade
my/followed
para obter o conteúdo que o usuário atual está seguindo.Ler a resposta JSON retornada por solicitações. Consulte Exemplo de respostas 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("&");
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);
}
Exemplo de respostas JSON para as solicitações para seguir conteúdo
Por padrão, o serviço REST retorna respostas formatados usando o protocolo Atom, mas você pode solicitar o formato JSON usando um cabeçalho de Accept HTTP (por exemplo: "accept":"application/json;odata=verbose"
). Os dados de resposta são retornados como uma cadeia de caracteres, e você pode usar a função JSON.stringify e a função de JSON.parse para converter a cadeia de caracteres em um objeto, conforme mostrado nos exemplos de código anterior.
Para solucionar um erro retornado pelo serviço REST, no modo de depuração, examine a propriedade responseText, conforme mostrado nas funções de retorno de chamada requestFailed nos exemplos anteriores. Você também poderá obter a ID de correlação de log do ULS do servidor de um rastreador de rede ou depurador HTTP, como o Fiddler. A ID de correlação é o mesmo que o ID de solicitação na resposta HTTP.
Exemplo de resposta para o ponto de extremidade Follow
Em resposta às solicitações do lado do follow
cliente ao ponto de extremidade, o serviço REST retorna um valor SocialFollowResult que representa se a solicitação Follow foi bem-sucedida.
A seguinte resposta representa o status de AlreadyFollowing.
{"d":{"Follow":1}}
A tabela 1 mostra os códigos de status SocialFollowResult e seus valores.
Tabela 1. Códigos e valores SocialFollowResult
Código de status | Valor |
---|---|
0 | OK. O usuário atual está seguindo o ator. |
1 | AlreadyFollowing. O usuário atual já está seguindo o ator. |
2 | LimitReached. A solicitação falhou porque um limite interno foi alcançado. |
3 | InternalError. A solicitação falhou devido a um erro interno. |
Observação
[!OBSERVAçãO] O serviço REST não retorna uma resposta para a solicitação de StopFollowing. Ele retornará {"d":{"StopFollowing":null}}
.
Exemplo de resposta para o ponto de extremidade IsFollowed
Em resposta às solicitações do lado do isfollowed
cliente ao ponto de extremidade, o serviço REST retorna um valor bool que representa se o usuário atual está seguindo o ator especificado.
A seguinte resposta indica que o usuário atual não está seguindo o documento especificado, o site ou a marca.
{"d":{"IsFollowed":false}}
Exemplo de resposta para o ponto de extremidade My/Followed
Em resposta às solicitações do lado do my/followed
cliente ao ponto de extremidade, o serviço REST retorna uma matriz de SP. Objetos Social.SocialActor que representam documentos, sites e marcas que o usuário atual está seguindo.
A seguinte resposta representa um documento visitado, site e marca. A solicitação especifica os tipos de conteúdo a ser incluído.
{"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"
}
]}}}
Exemplo de resposta para o ponto de extremidade My/FollowedCount
Em resposta às solicitações do lado do my/followedcount
cliente ao ponto de extremidade, o serviço REST retorna um valor Int32 que representa a contagem total de tipos de ator especificados que o usuário atual está seguindo.
A seguinte resposta representa uma contagem de três documentos seguidos, sites e/ou marcas. A solicitação especifica os tipos de conteúdo a ser incluído.
{"d":{"FollowedCount":3}}