Partager via


Lire et écrire dans le flux social en utilisant le service REST dans SharePoint

Créez une application hébergée sur SharePoint qui utilise le service REST pour publier un billet et obtenir le flux personnel pour l’utilisateur actuel.

Conditions préalables à la création d’un complément SharePoint hébergé par SharePoint qui publie une publication et obtient le flux social à 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 savoir comment s’inscrire à un site du développeur et commencer à utiliser Napa.

Si vous n'utilisez pas les Outils de développement Office 365 « Napa » sur un site du développeur, vous avez besoin de ce qui suit :

  • SharePoint avec Mon site configuré et avec un site personnel créé pour l’utilisateur actuel

  • Visual Studio 2012 et Outils de développement Office pour Visual Studio 2013

  • Autorisations d'accès Contrôle total à l'application de service de profil utilisateur pour l'utilisateur connecté

Remarque

Pour obtenir des conseils sur la configuration d’un environnement de développement adapté à vos besoins, voir Démarrer la création d’applications pour Office et SharePoint.

Concepts de base à connaître sur l’utilisation des flux sociaux SharePoint

L'application hébergée par SharePoint que vous créez dans cet article utilise JavaScript pour créer et envoyer des demandes HTTP aux points de terminaison Representational State Transfer (REST). Ces demandes de publier un billet et obtenir le personnel d'alimentation de l'utilisateur actuel. Le tableau 1 contient des liens vers des articles qui décrivent les concepts généraux relatifs à connaître avant de commencer.

Tableau 1. Concepts de base pour l’utilisation des flux sociaux SharePoint

Titre d’article Description
Compléments
Découvrez les Compléments SharePoint et les concepts fondamentaux de leur création.
Mise en route du développement de fonctionnalités sociales dans SharePoint
Découvrez comment commencer à programmer avec des flux sociaux et des publications de microblog, suivre des personnes et du contenu (documents, sites et tags.md) et utiliser des profils utilisateur.
Utiliser des flux sociaux dans SharePoint
Découvrez les tâches de programmation courantes pour l'utilisation de l'API que vous utilisez pour effectuer les tâches et les flux sociaux.

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 SocialFeedREST, puis cliquez sur le bouton créer.

  3. Spécifier les autorisations que votre application doit :

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

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

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

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

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

  1. Développez le nœud Scripts, choisissez le fichier App.js et supprimez le contenu du fichier.

Publier dans le flux social à l’aide du service REST SharePoint

  1. Dans le fichier App.js, déclarez une variable globale pour l'URL du point de terminaison SocialFeedManager.
var feedManagerEndpoint;
  1. Ajoutez le code suivant, qui obtient le paramètre SPAppWebUrl à partir de la chaîne de requête et l'utilise pour créer le point de terminaison SocialFeedManager.
  $(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];
    }
    feedManagerEndpoint = decodeURIComponent(appweburl) + "/_api/social.feed";
    postToMyFeed();
});
  1. Ajoutez le code suivant, qui génère la demande de POST HTTP pour le point de terminaison /my/Feed/Post , définit les données de création de la publication et publie le billet de blog.

    La demande envoie une ressource SocialRestPostCreationData dans le corps de la demande. SocialRestPostCreationData contient la cible de la publication (dans ce cas, null pour spécifier un billet racine de l'utilisateur actuel) et un type complexe SocialPostCreationData qui définit les propriétés de la publication.

  
function postToMyFeed() {
    $.ajax( {
        url: feedManagerEndpoint + "/my/Feed/Post",
        type: "POST",
        data: JSON.stringify( { 
            'restCreationData':{
                '__metadata':{ 
                    'type':'SP.Social.SocialRestPostCreationData'
                },
                'ID':null, 
                'creationData':{ 
                    '__metadata':{ 
                        'type':'SP.Social.SocialPostCreationData'
                    },
                'ContentText':'This post was published using REST.',
                'UpdateStatusText':false
                } 
            } 
        }),
        headers: { 
            "accept": "application/json;odata=verbose",
            "content-type":"application/json;odata=verbose",
            "X-RequestDigest": $("#__REQUESTDIGEST").val()
        },
        success: getMyFeed,
        error: function (xhr, ajaxOptions, thrownError) { 
            alert("POST error:\\n" + xhr.status + "\\n" + thrownError);
        }
    });
}

Récupérer le flux social pour l’utilisateur actuel à l’aide du service REST SharePoint

Ajoutez le code suivant, qui obtient le Personal flux type pour l'utilisateur actuel à l'aide du point de terminaison /my/Feed . L'en-tête accept exige que le serveur renvoie une représentation sous forme de JavaScript Object Notation (JSON) du flux dans sa réponse.


function getMyFeed() {
    $.ajax( {
        url: feedManagerEndpoint + "/my/Feed",
        headers: { 
            "accept": "application/json;odata=verbose"
        },
        success: feedRetrieved,
        error: function (xhr, ajaxOptions, thrownError) { 
            alert("GET error:\\n" + xhr.status + "\\n" + thrownError);
        }
    });    
}

Itérer dans le flux social et lire à partir de celui-ci à l’aide du service REST SharePoint

Ajoutez le code suivant, qui prépare les données retournées à l'aide de la fonction JSON.stringify et la fonction JSON.parse, puis effectue une itération dans le flux et obtient du propriétaire du thread et le texte de la racine post.


function feedRetrieved(data) {
    var stringData = JSON.stringify(data);
    var jsonObject = JSON.parse(stringData); 
 
    var feed = jsonObject.d.SocialFeed.Threads; 
    var threads = feed.results;
    var feedContent = "";
    for (var i = 0; i < threads.length; i++) {
        var thread = threads[i];
        var participants = thread.Actors;
        var owner = participants.results[thread.OwnerIndex].Name;
        feedContent += '<p>' + owner + 
            ' said "' + thread.RootPost.Text + '"</p>';
    }  
    $("#message").html(feedContent); 
}

Exécuter l'application pour SharePoint sur le Site de développeur

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

  2. Dans la page avez-vous confiance qui s'ouvre, cliquez sur le bouton Approbation. La page de l'application s'ouvre et affiche le nom du propriétaire et le texte de chaque billet racine dans le flux.

Exemple de code : Publier un billet et obtenir le flux pour l’utilisateur actuel à l’aide du service REST SharePoint

Voici l'exemple de code complet pour le fichier App.js. Elle publie un billet et obtient le personnel d'alimentation de l'utilisateur actuel, qui est retourné en tant qu'objet JSON. Il parcourt ensuite le flux.


var feedManagerEndpoint;

// Get the SPAppWebUrl parameter from the query string and build
// the feed 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];
    }
    feedManagerEndpoint = decodeURIComponent(appweburl)+ "/_api/social.feed";
    postToMyFeed();
});

// Publish a post to the current user's feed by using the 
// "<app web URL>/_api/social.feed/my/Feed/Post" endpoint.
function postToMyFeed() {
    $.ajax( {
        url: feedManagerEndpoint + "/my/Feed/Post",
        type: "POST",
        data: JSON.stringify( { 
            'restCreationData':{
                '__metadata':{ 
                    'type':'SP.Social.SocialRestPostCreationData'
                },
                'ID':null, 
                'creationData':{ 
                    '__metadata':{ 
                        'type':'SP.Social.SocialPostCreationData'
                    },
                'ContentText':'This post was published using REST.',
                'UpdateStatusText':false
                } 
            } 
        }),
        headers: { 
            "accept": "application/json;odata=verbose",
            "content-type":"application/json;odata=verbose",
            "X-RequestDigest": $("#__REQUESTDIGEST").val()
        },
        success: getMyFeed,
        error: function (xhr, ajaxOptions, thrownError) { 
            alert("POST error:\\n" + xhr.status + "\\n" + thrownError);
        }
    });
}

// Get the current user's feed by using the 
// "<app web URL>/_api/social.feed/my/Feed" endpoint.
function getMyFeed() {
    $.ajax( {
        url: feedManagerEndpoint + "/my/Feed",
        headers: { 
            "accept": "application/json;odata=verbose"
        },
        success: feedRetrieved,
        error: function (xhr, ajaxOptions, thrownError) { 
            alert("GET error:\\n" + xhr.status + "\\n" + thrownError);
        }
    });    
}

// Parse the JSON data and iterate through the feed.
function feedRetrieved(data) {
    var stringData = JSON.stringify(data);
    var jsonObject = JSON.parse(stringData); 
 
    var feed = jsonObject.d.SocialFeed.Threads; 
    var threads = feed.results;
    var feedContent = "";
    for (var i = 0; i < threads.length; i++) {
        var thread = threads[i];
        var participants = thread.Actors;
        var owner = participants.results[thread.OwnerIndex].Name;
        feedContent += '<p>' + owner + 
            ' said "' + thread.RootPost.Text + '"</p>';
    }  
    $("#message").html(feedContent); 
}

Étapes suivantes

Consultez Informations de référence sur l’API REST de flux social pour SharePoint et Informations de référence sur l’API REST de suivi des personnes et du contenu pour SharePoint pour obtenir d’autres points de terminaison REST que vous pouvez utiliser pour accéder aux fonctionnalités de réseaux sociaux.

Voir aussi