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
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.
Assurez-vous que votre serveur est activé cURL
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'
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.
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
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
}
}
}
?>