web-dev-qa-db-fra.com

comment afficher les derniers articles récents de ma page facebook sur mon site web

j'ai une page sur Facebook et je souhaite afficher les 5 derniers messages de mon flux/mur sur une page de mon site Web. Comment faire ça? J'ai trouvé cette solution .. c'est facile

https://developers.facebook.com/docs/reference/plugins/like-box/

et quelqu'un me guide pour utiliser facebook api et le fais moi-même quel est le meilleur moyen?

J'utilise php mysql pour construire ce site

7
user1080247

Voici le code PHP. Vous devez placer ceci dans votre modèle.

<ul>
<?php
//function to retrieve posts from facebook’s server
function loadFB($fbID){
    $url = "http://graph.facebook.com/".$fbID."/feed?limit=3";
    // Update by MC Vooges 11jun 2014: Access token is now required:
    $url.= '&access_token=YOUR_TOKEN|YOUR_ACCESS_SECRET';// *

    //load and setup CURL
     $c = curl_init($url);
     curl_setopt($c, CURLOPT_RETURNTRANSFER, 1);
    //get data from facebook and decode JSON
     $page = json_decode(curl_exec($c));
    //close the connection
     curl_close($c);
    //return the data as an object
     return $page->data;
}

/* Change These Values */
// Your Facebook ID
 $fbid = "190506416472588";
// How many posts to show?
 $fbLimit = 10;
// Your Timezone
date_default_timezone_set("America/Chicago");


/* Dont Change */
// Variable used to count how many we’ve loaded
 $fbCount = 0;
// Call the function and get the posts from facebook
 $myPosts = loadFB($fbid);


//loop through all the posts we got from facebook
foreach($myPosts as $dPost){
    //only show posts that are posted by the page admin
    if($dPost->from->id==$fbid){
        //get the post date / time and convert to unix time
         $dTime = strtotime($dPost->created_time);
        //format the date / time into something human readable
        //if you want it formatted differently look up the php date function
         $myTime=date("M d Y h:ia",$dTime);
        ?>
        <ul>
            <li><?php echo($dPost->message) . $myTime; ?></li>
        </ul>
        <?php
        //increment counter
         $fbCount++;
        //if we’ve outputted the number set above in fblimit we’re done
         if($fbCount >= $fbLimit) break;
    }
}
?>
</ul>

Deux choses que vous devez faire pour élaborer ce script.

  1. Assurez-vous que votre serveur est activé cURL

  2. Vous devrez modifier l'ID Facebook dans le script par le vôtre.

* Vous pouvez obtenir le jeton d'accès de cette façon:

$token = 'https://graph.facebook.com/oauth/access_token?client_id='.APP_ID.'&client_secret='.APP_SECRET.'&grant_type=client_credentials';
$token = file_get_contents($token); // returns 'accesstoken=APP_TOKEN|APP_SECRET'
17
Okky
  1. Connectez-vous à facebook
  2. Aller à la section des développeurs facebok " Applications "
  3. Enregistrer une nouvelle application, il vous suffit d'enregistrer une nouvelle application, toutes les données supplémentaires sont facultatives
  4. Copiez votre ID d’application/clé d’API et votre secret d’application à partir de la même section " Applications ".
  5. Copiez facebook.php et base_facebook.php fichiers de repo sur votre serveur
  6. Utilisez une requête polymorphe to api, pour demander le contenu d'un mur à partir d'un compte facebook

    require 'facebook.php';
    $facebook = new Facebook(array(
        'appId' => 'YOUR_APP_ID',
        'secret' => 'YOUR_APP_SECRET',
    ));
    
    $fbApiGetPosts = $facebook->api('/YOUR_FACEBOOK_ACCOUNT_ID/feed?limit=5');
    if (isset($fbApiGetPosts["data"]) && !empty($fbApiGetPosts["data"])) {
        // display contents of $fbApiGetPosts["data"] array
    }
    

    Remplacez YOUR_APP_ID par votre ID d'application, YOUR_APP_SECRET par le secret de votre application et YOUR_FACEBOOK_ACCOUNT_ID par un compte facebook cible à partir duquel vous souhaitez recevoir des publications.

La requête polymorphe est fondamentalement chemin/URL. Plus d'informations à l'intérieur mentionné précédemment sur facebook api documentation de référence .

Si le mur de votre compte facebook cible est public, vous n'aurez besoin de rien d'autre pour le voir.

15
Deele

La réponse d’Okky me posait problème, et j’ai trouvé un moyen de contourner possible, mais pas idéal.

Utilisez un flux RSS de votre mur Facebook, puis analysez-le simplement avec un lecteur RSS de votre choix.

https://www.facebook.com/feeds/page.php?format=rss20&id=YOUR_UNIQUE_ID

Voici un moyen rapide d'obtenir votre identité

2
DACrosby

Donc, pour mélanger Okky et Deele, répondez-moi, que tous les deux m'aident, vous devez vous retrouver avec quelque chose qui ressemblera à ceci. J'ajoute également une balise d'ancrage pour créer un lien vers l'URL du message:

<?php
$fbApiGetPosts = $facebook->api('/YOUR_FACEBOOK_ACCOUNT_ID/feed?limit=5');
if (isset($fbApiGetPosts["data"]) && !empty($fbApiGetPosts["data"])) {
    //loop through all the posts we got from facebook
    foreach($fbApiGetPosts["data"] as $dPost){
        //only show posts that are posted by the page admin
        if($dPost["from"]["id"]==$fbid){
            //get the post date / time and convert to unix time
             $dTime = strtotime($dPost["created_time"]);
            //format the date / time into something human readable
            //if you want it formatted differently look up the php date function
            $myTime=date("M d Y h:ia",$dTime);
            ?>
                <li><a href="<?php echo($dPost["link"]); ?>">
                                        <?php echo($dPost["message"]) . "<br>" .
                                         $myTime; ?></a></li>
            <?php
        }
    }   
}
?>
0