Affichage D'un fil D'actualité Facebook / timeline sur un site web

J'ai un client qui veut que le fil D'actualité/la chronologie Facebook de leur entreprise soit affiché sur leur site web. Ce n'est pas un fil d'actualité personnel, mais celui d'une organisation.

Tout ce que j'ai lu semble vieux de quelques années, mais le résultat semble être: Facebook veut garder toutes ses données sur ses propres serveurs-ils ne veulent pas que les gens l'exportent, et les gens ont été interdits pour essayer. (Comme je le dis, cette information avait plusieurs années.)

La chose actuelle la plus proche que j'ai trouvée est le Plugin Activity Feed , mais qui enregistre uniquement les interactions des autres utilisateurs avec le site ou une application FB.

Quelqu'un a-t-il réussi à exporter ses mises à jour publiques vers un site Web externe, ou dois-je dire à mon client que cela ne peut pas être fait?

Merci pour toute aide!

23
demandé sur Chuck Le Butt 2012-04-18 15:50:45

6 réponses

AFAIK, c'est possible, d'une certaine manière. La solution la plus simple, mais pas la meilleure pour votre situation pourrait être le Like Box plugin :

La boîte Like permet aux utilisateurs de:

Voyez combien d'utilisateurs aiment déjà cette Page, et lequel de leurs amis l'aime aussi
Lire Messages récents de la Page
comme la Page en un seul clic, sans avoir besoin de visiter la Page

Meilleure solution: utilisez leur API Graph , mais vous ne pouvez lire les données (comme JSON), ne pas avoir le flux exactement répliqué sur le site Web de votre client, ne vous attendez pas à pouvoir appliquer les styles que facebook utilise(c'est-à-dire que vous ne pourrez pas le gratter), vous devrez soit le répliquer, soit créer vos propres styles.

Maintenant, si la page est publique et peut être lu par tous, comme il n'existe pas de règles de confidentialité, vous pouvez simplement appeler l'url à toute access_token(peut être app access_token aussi):

https://graph.facebook.com/<clientpagename_OR_id>/feed

Ou

https://graph.facebook.com/<clientpagename_OR_id>/posts

Selon quoi exactement vous devez, essayez le Graph api explorer pour vérifier cela (et voir également le type de données renvoyées). Quand il y a beaucoup de messages, il y aura des URL de pagination, que vous pourrez remarquer dans l'Explorateur aussi.

Dans le cas où la page n'est pas publique, vous aurez besoin d'un access_token avec l'autorisation read_stream, vous devrez donc créer une application facebook , de type site web. Ensuite, obtenez l'administrateur de la page de votre client pour autoriser l'application, avec read_stream autorisation. Après que vous pouvez appeler l'url avec l'access_token que vous recevez après l'authentification et pouvez continuer à lire le flux.

https://graph.facebook.com/<clientpagename_OR_id>/posts?access_token=thetoken

Dans ce cas, utilisez le SDK PHP , pour simplifier l'authentification et l'appel de l'api graph.

Liens importants: Guide D'authentification , mises à jour en temps réel.

Bonne chance.

Edit: vous avez besoin d'un jeton d'accès pour accéder à l'alimentation ou à des postes connexions, mais vous ne pas nécessairement besoin d'un jeton d'accès à lisez l'objet page lui-même, comme indiqué dans cette documentation .
Note du doc:

Pour les connexions qui nécessitent un jeton d'accès, vous pouvez utiliser n'importe quel jeton d'accès valide si la page est publique et non restreinte. Les connexions sur les pages restreintes nécessitent un jeton d'accès utilisateur et ne sont visibles que pour les utilisateurs qui répondent aux critères de restriction (par exemple l'âge) définis sur la page.

31
répondu bool.dev 2012-04-24 14:22:23

Vous pouvez récupérer le fil d'actualité de L'organisation à L'aide de L'API Graph de Facebook. La chronologie ne peut pas être récupérée via L'API publique.

Il n'y a pas de plugin pour le faire. Vous devez appeler

https://graph.facebook.com/USER_ID/home

Qui vous donne une réponse JSON.

Vous devez ensuite analyser le JSON dans une nouvelle mise en page sur la page web de l'organisation.

Prêter à Confusion, l'appel de

https://graph.facebook.com/USER_ID/feed

Ne récupère pas le fil d'actualité, mais les messages muraux d'un utilisateur, qui peuvent ou non être ce que vous vouloir.

Voici {[16] } un tutoriel qui passe en revue les bases de la mise en place d'un fil d'actualité sur un site Web avec php.

7
répondu Gunnar Karlsson 2012-04-24 00:10:19

La façon la plus simple de le faire est de lire la timeline Facebook RSS:

function FacebookFeed($pagename, $count, $postlength) {
$pageID = file_get_contents('https://graph.facebook.com/?ids='.$pagename.'&fields=id');
$pageID = json_decode($pageID,true);
$pageID = $pageID[$pagename]['id'];

ini_set('user_agent', 'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.9) Gecko/20071025 Firefox/2.0.0.9');
$rssUrl = 'http://www.facebook.com/feeds/page.php?format=rss20&id='.$pageID;
$xml = simplexml_load_file($rssUrl);
$entry = $xml->channel->item;

for ($i = 0; $i < $count; $i++) {
$description_original = $entry[$i]->description;
$description_striphtml = strip_tags($description_original);
$description = substr($description_striphtml, 0, $postlength);

$link = $entry[$i]->link;

$date_original = $entry[$i]->pubDate;
$date = date('d-m-Y, H:i', strtotime($date_original));

$FB_feed .= $description."&hellip;<br>";
$FB_feed .= "<small><a href='".$link."'>".$date."</a></small><br><br>";
}

return $FB_feed;
}
4
répondu Jan-Paul Kleemans 2013-07-11 12:41:56

Oui, cela peut être fait. Tout d'abord enregistrer le site web à la page de développeur de facebook. Que vous pouvez utiliser N'importe quelle API appropriée pour interagir avec FB. Parfois, J'ai utilisé SpringSocial (puisque je travaillais étroitement avec Spring)... Vous pouvez utiliser FB propre api qui est également très utile vous pouvez lire le tutoriel ici

1
répondu Amit 2012-04-18 11:57:34

, Il peut certainement être fait. Facebook Facebook vous suffit d'obtenir un jeton d'accès, puis vous pouvez accéder à un flux JSON de messages via l'API facebook.

Vous devez vous rendre sur le site des développeurs facebook et cliquer sur Apps en haut. Suivez les étapes pour obtenir un secret d'application et un ID client. Ensuite, il suffit de les mettre dans l'URL suivante et il retournera votre accès jeton:

Https://graph.facebook.com/oauth/access_token?grant_type=client_credentials&client_id=YOUR_CLIENT_ID&client_secret=YOUR_CLIENT_SECRET

Étape par étape les instructions ici: http://smashballoon.com/custom-facebook-feed/access-token/

1
répondu John Brackett 2013-06-06 14:44:43

Ce document détaille les étapes pour obtenir les jetons d'accès facebook et l'utilisation des jetons pour récupérer les flux FB.

Exemple: Un exemple en direct est disponible dans

Https://newtonjoshua.com

Introduction à L'API graphique: L'API Graph est le principal moyen d'obtenir des données dans et hors de la plate-forme de Facebook. C'est une API HTTP de bas niveau que vous pouvez utiliser pour interroger des données, publier de nouvelles histoires, gérer des annonces, télécharger des photos et un variété d'autres tâches qu'une application peut avoir besoin de faire.

Facebook Apps:

Https://developers.facebook.com

Créez une application Facebook. Vous recevrez un App_Id et App_Secret

Explorer L'API graphique:

Https://developers.facebook.com/tools/explorer/{{App_Id}}/?method=GET&path=me%2Ffeed&version=v2.8

, Vous obtiendrez un access_token, qui est de courte durée. Ce sera donc notre short_lived_access_token.

Remarque: lors de la création du jeton d'accès, sélectionnez tous les champs fb dont vous avez besoin.Cela donnera l'autorisation au jeton d'accès pour récupérer ces champs.

Extension Du Jeton D'Accès:

Https://graph.facebook.com/oauth/access_token?grant_type=fb_exchange_token&client_id={{App_Id}}&client_secret={{App_Secret}}&fb_exchange_token={{short-lived-access_token}}

, Vous obtiendrez un access_token avec une durée de validité de 2 mois.

Débogueur De Jetons D'Accès:

Https://developers.facebook.com/tools/debug/accesstoken?q={{access_token}}&version=v2.8

, Vous pouvez vérifier vérifier les détails de la access_token.

Facebook SDK pour JavaScript: Incluez le JavaScript ci-dessous dans votre HTML pour charger de manière asynchrone le SDK dans votre page

        (function (d, s, id) {
            var js, fjs = d.getElementsByTagName(s)[0];
            if (d.getElementById(id)) {
                return;
            }
            js = d.createElement(s);
            js.id = id;
            js.src = "//connect.facebook.net/en_US/sdk.js";
            fjs.parentNode.insertBefore(js, fjs);
        }(document, 'script', 'facebook-jssdk'));

API graphique: Faisons un appel API pour obtenir notre FB id, pic de profil, pic de couverture et alimente.

window.fbAsyncInit = function () {
    FB.init({
        appId: '{{App_Id }}',
        xfbml: true,
        version: 'v2.7'
    });
    FB.api(
        '/me',
        'GET', {
            fields: 'id,picture{url},cover,feed',
            access_token: {{access_token}}
        },
        function (response) {
        if (response.error) {
                console.error(response.error.message);
            }
            if (response.picture.data.url) {
                profilePic = response.picture.data.url;
            }
            if (response.cover.source) {
                coverPic = response.cover.source;
            }
            if (response.feed.data) {
        feeds = response.feed.data;
                feeds.forEach(function (feed) {
            // view each feed content
                });
            }
            if (response.feed.paging.next) {
                nextFeedPage = response.feed.paging.next;
        // a request to nextFeedPage will give the next set of feeds
            }

        }
    );
};

Utilisez L'Explorateur D'API Graph pour concevoir votre requête qui doit être saisie dans les ' champs '(par exemple: 'id,picture{url},cover,feed')

Maintenant, vous pouvez récupérer votre Facebook de données de Facebook API Graphique à l'aide de votre access_token.

Se référer à https://developers.facebook.com/docs/graph-api/overview/

Remarque: Votre access_token expirera dans 2 mois. Créez un nouveau access_token après cela.

1
répondu Newton Joshua 2017-07-17 09:29:40