Partager via


Suivre des documents, des sites et des balises à l’aide du service REST dans SharePoint

Créez des applications hébergées par SharePoint qui utilisent le service REST pour suivre le contenu (documents, sites et balises) et obtenir du contenu suivi.

Comment utiliser le service REST SharePoint pour suivre du contenu ?

Les utilisateurs de SharePoint peuvent suivre des documents, des sites et des balises pour obtenir des mises à jour sur les éléments dans leurs Flux d’actualité et ouvrir rapidement les documents et sites suivis. Vous pouvez utiliser l’API REST SharePoint dans votre application ou solution pour commencer à suivre du contenu, cesser de suivre du contenu et obtenir du contenu suivi pour le compte de l’utilisateur actif.

Les ressources REST suivants sont l'API principale pour les tâches de contenu suivants :

  • SocialRestFollowingManager fournit des méthodes permettant de gérer la liste des acteurs suivis de l'utilisateur.

  • SocialActor représente un document, un site ou une balise retournés par le serveur en réponse à une demande de côté client.

  • SocialActorInfo spécifie un document, un site ou une balise de demandes côté client vers le serveur.

  • SocialActorType et SocialActorTypes spécifient les types de contenu dans les demandes de côté client vers le serveur.

Pour effectuer les tâches suivantes contenu à l'aide de l'API REST, vous envoyer HTTP GET et POST de demandes HTTP pour le service REST. URI de point de terminaison REST pour les tâches suivantes contenu commence avec la ressource SocialRestFollowingManager ( <siteUri>/_api/social.following) et se termine avec une des ressources suivantes :

  • follow pour démarrer le suivi d'un document, un site ou une balise

  • stopfollowing pour arrêter le suivi d'un document, un site ou une balise

  • isfollowed permettant de savoir si l'utilisateur suit un document spécifique, un site ou une balise

  • my/followed pour obtenir les documents suivis, des sites et des balises

  • my/followedcount pour obtenir le nombre de documents suivis, des sites et des balises

Remarque

Vous utilisez également ces points de terminaison pour les tâches des personnes suivantes, mais les ressources followers et suggestions disponibles à partir de la prise en charge uniquement SocialRestFollowingManager suivi de personne, pas de contenu. Pour plus d’informations sur l’utilisation de SocialRestFollowingManager, voir Suivre le contenu dans SharePoint et Suivre des personnes dans SharePoint.

Conditions préalables à la création d’une application hébergée par SharePoint qui gère du contenu suivi à l’aide du service REST SharePoint

Cet article suppose que vous créez l'Complément SharePoint à l'aide des Outils de développement Office 365 « Napa » sur un site du développeur Office 365. Si vous utilisez cet environnement de développement, vous remplissez déjà les conditions préalables.

Remarque

Accédez à Configurer un environnement de développement pour les compléments SharePoint sur Office 365 pour vous inscrire à un site du développeur et commencer à utiliser Napa.

Si vous n'utilisez pas Outils de développement Office 365 « Napa » sur une Office 365 Site de développeur, vous devez respecter les conditions préalables suivantes avant de pouvoir déployer la Complément SharePoint:

  • Un environnement de développement SharePoint configuré pour l’isolation de l’application. Si vous développez à distance, le serveur doit prendre en charge le chargement de version test des applications, ou vous devez installer l'application sur un Site du développeur.

  • L'hôte Site Mon site configuré, avec un site personnel créé pour l'utilisateur actuel.

  • Visual Studio 2012 ou Visual Studio 2013 avec Outils de développement Office pour Visual Studio 2013.

  • Autorisations suffisantes pour l'utilisateur connecté :

    • Autorisations d'administrateur local sur l'ordinateur de développement.

    • Gérer un site web et créer des autorisations utilisateur de sous-sites pour le site SharePoint où vous installez l’application. Par défaut, ces autorisations sont disponibles uniquement pour les utilisateurs qui possèdent le niveau d’autorisation Contrôle total ou qui sont membres du groupe Propriétaires de site.

    • Vous devez être connecté en tant que quelqu'un d'autre que le compte système. Le compte système ne dispose pas d'autorisation pour installer l'application.

Remarque

Voir Configurer un environnement de développement local pour les compléments SharePoint pour obtenir des conseils sur la configuration locale (notamment comment désactiver le bouclage case activée, si nécessaire).

Créer le projet de complément SharePoint

  1. Sur votre Site de développeur, ouvrez Outils de développement Office 365 « Napa », puis choisissez Ajouter un nouveau projet.

  2. Choisissez le modèle application pour SharePoint, nommez le projet, puis choisissez le bouton créer.

  3. Définir les autorisations pour votre application :

    1. Cliquez sur le bouton Propriétés en bas de la page.

    2. Dans la fenêtre Propriétés, cliquez sur autorisations.

    3. Dans la catégorie de contenu, définir des autorisations de Write pour l'étendue de client.

    4. Dans la catégorie de mise en réseau, définir des autorisations de Read pour l'étendue de Profils utilisateur.

    5. Fermez la fenêtre Propriétés.

  4. Développez le nœud Scripts, choisissez le fichier App.js et remplacez son contenu par le code à partir d'un des scénarios suivants :

  5. Pour exécuter l'application, cliquez sur le bouton Exécuter le projet en bas de la page.

  6. Dans la page avez-vous confiance qui s'ouvre, cliquez sur le bouton Approbation. La page de l'application s'ouvre et le code est exécuté. Pour déboguer la page, appuyez sur la touche F12, puis choisissez App.js sous l'onglet Script.

Exemple de code : commencer à suivre et cesser de suivre un document en utilisant le service REST SharePoint

L'exemple de code suivant représente le contenu du fichier App.js et indique comment :

  • Obtenez l’URI web de l’application à partir de la chaîne de requête et construisez l’URI du <siteUri>/_api/social.following point de terminaison.

  • Créer et envoyer une demande de POST au point de terminaison isfollowed permettant de savoir si l'utilisateur actuel suit déjà un document spécifié.

  • Créer et envoyer une demande de POSTfollow point de terminaison pour démarrer le suivi du document.

  • Créer et envoyer une demande de POSTstopfollowing point de terminaison d'arrêter le suivi du document.

  • Lisez la réponse JSON retournée par la isfollowed requête et la follow requête. (La demande stopfollowing ne renvoie rien dans la réponse.) Afficher les réponses de l'exemple de JSON.

Avant d'exécuter le code, vous devez télécharger un document et de modifier la valeur de l'espace réservé pour la variable documentUrl à l'URL du document.


// 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);
}

Exemple de code : commencer à suivre et cesser de suivre un site en utilisant le service REST SharePoint

L'exemple de code suivant représente le contenu du fichier App.js et indique comment :

  • Obtenez l’URI web de l’application à partir de la chaîne de requête et construisez l’URI du <siteUri>/_api/social.following point de terminaison.

  • Créer et envoyer une demande de POST au point de terminaison isfollowed permettant de savoir si l'utilisateur actuel suit déjà un site spécifié.

  • Créer et envoyer une demande de POSTfollow point de terminaison pour démarrer le suivi du site.

  • Créer et envoyer une demande de POSTstopfollowing point de terminaison d'arrêter le suivi du site.

  • Lisez la réponse JSON retournée par la isfollowed requête et la follow requête. (La demande stopfollowing ne renvoie rien dans la réponse.) Afficher les réponses de l'exemple de JSON.

Avant d'exécuter le code, modifiez la valeur de l'espace réservé pour la variable siteUrl correspondre au site que vous souhaitez effectuer. Utilisez le format http://server/siteCollection/site pour un site dans une collection de sites. Vous pouvez suivre un site à partir d'une page ou d'une bibliothèque de ce site. Si le site utilise un modèle qui ne prennent en charge suivant (comme l'hôte de sites Mon Site ou un site personnel), vous obtiendrez une erreur UnsupportedSite (code d'erreur 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);
}

Exemple de code : commencer à suivre et cesser de suivre une balise en utilisant le service REST SharePoint

L'exemple de code suivant représente le contenu du fichier App.js et indique comment :

  • Obtenez l’URI web de l’application à partir de la chaîne de requête et construisez l’URI du <siteUri>/_api/social.following point de terminaison.

  • Créer et envoyer une demande de POST au point de terminaison isfollowed permettant de savoir si l'utilisateur actuel est suivi déjà d'une balise spécifiée.

  • Créer et envoyer une demande de POSTfollow point de terminaison pour démarrer après la balise.

  • Créer et envoyer une demande de POSTstopfollowing point de terminaison d'arrêter le suivi de la balise.

  • Lisez la réponse JSON retournée par la isfollowed requête et la follow requête. (La demande stopfollowing ne renvoie rien dans la réponse.) Pour plus d'informations, voir exemple de JSON réponses.

Avant d'exécuter le code, modifiez la valeur de l'espace réservé pour la variable tagGuid le GUID d'une balise existante. La API qui vous permet de récupérer une balise à partir de la HashTagsTermSet de taxonomie ne possède pas une interface REST, afin que vous devez utiliser le modèle d'objet client .NET ou le modèle d'objet JavaScript. Pour obtenir un exemple, consultez la rubrique Comment obtenir le GUID d'une balise basée sur le nom de la balise à l'aide du modèle d'objet 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);
}

Exemple de code : obtenir du contenu suivi à l’aide du service REST SharePoint

L'exemple de code suivant représente le contenu du fichier App.js et indique comment :

  • Obtenez l’URI web de l’application à partir de la chaîne de requête et construisez l’URI du <siteUri>/_api/social.following point de terminaison.

  • Créer et envoyer une demande de GETmy/followedcount point de terminaison pour obtenir le nombre de contenu que l'utilisateur actuel est suivi.

  • Créer et envoyer une demande de GETmy/followed point de terminaison pour obtenir le contenu que l'utilisateur actuel est suivi.

  • Lire la réponse JSON renvoyée par le nombre de demandes. Consultez Exemples de réponses 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);
}

Exemples de réponses JSON pour les demandes de contenu suivantes

Par défaut, le service REST renvoie des réponses qui sont mis en forme à l'aide du protocole Atom, mais vous pouvez demander au format JSON à l'aide d'un en-tête de Accept HTTP (par exemple : "accept":"application/json;odata=verbose"). Les données de la réponse sont renvoyées sous forme de chaîne, et vous pouvez utiliser les fonctions de JSON.stringify et JSON.parse pour convertir la chaîne en un objet, comme indiqué dans les exemples de code précédents.

Pour corriger une erreur renvoyée par le service REST, en mode débogage, examinez la propriété responseText, comme indiqué dans les fonctions de rappel requestFailed dans les exemples précédents. Vous pouvez également obtenir l'ID de corrélation pour le journal du service ULS du serveur à partir d'un espion réseau ou d'un débogueur HTTP, par exemple Fiddler. L'ID de corrélation est identique à l'ID de demande dans la réponse HTTP.

Exemple de réponse pour le point de terminaison Follow

En réponse aux demandes côté client adressées au point de follow terminaison, le service REST retourne une valeur SocialFollowResult qui indique si la demande Follow a réussi.

La réponse suivante représente l'état AlreadyFollowing.


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

Le tableau 1 présente les codes d'état SocialFollowResult et leurs valeurs.

Tableau 1. Codes et valeurs SocialFollowResult

Code d’état Valeur
0 OK. L'utilisateur actuel est suivi maintenant l'acteur.
1 AlreadyFollowing. L'utilisateur actuel est suivi déjà l'acteur.
2 LimitReached. La demande a échoué, car une limite interne a été atteinte.
3 InternalError. La demande a échoué en raison d'une erreur interne.

Remarque

[!REMARQUE] Le service REST ne renvoie pas une réponse de la demande StopFollowing. Elle renvoie {"d":{"StopFollowing":null}}.

Exemple de réponse pour le point de terminaison IsFollowed

En réponse aux demandes côté client adressées au isfollowed point de terminaison, le service REST retourne une valeur bool qui indique si l’utilisateur actuel suit l’acteur spécifié.

La réponse suivante indique que l'utilisateur actuel n'est pas suivent le document spécifié, un site ou une balise.

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

Exemple de réponse pour le point de terminaison My/Followed

En réponse aux demandes côté client adressées au point de my/followed terminaison, le service REST retourne un tableau de fournisseur de services. Objets Social.SocialActor qui représentent des documents, des sites et des étiquettes que l’utilisateur actuel suit.

La réponse suivante représente un document visité, site et balise. La demande spécifie les types de contenu à inclure.

{"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"
  }
]}}}

Exemple de réponse pour le point de terminaison My/FollowedCount

En réponse aux demandes côté client adressées au my/followedcount point de terminaison, le service REST retourne une valeur Int32 qui représente le nombre total de types d’acteurs spécifiés que l’utilisateur actuel suit.

La réponse suivante représente le nombre de trois documents suivis, sites et/ou des balises. La demande spécifie les types de contenu à inclure.


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

Voir aussi