PHP fonction pour obtenir le statut Facebook?

voix
9

Je suis à la recherche d'une bonne, simple fonction PHP pour obtenir mes dernières mises à jour de statut Facebook. Quelqu'un sait d'un?

Merci!

EDIT: J'ai ajouté une demi-solution ci - dessous.

Ou si quelqu'un sait une bonne façon de lire dans le flux RSS et recracher la mise à jour de l'état récent?

Créé 20/12/2008 à 22:44
source utilisateur
Dans d'autres langues...                            


10 réponses

voix
6

Une vérification rapide sur PEAR trouvé Services_Facebook

Créé 20/12/2008 à 22:53
source utilisateur

voix
1

Je ne semble jamais se entendre avec PEAR, mais si vous avez plus de chance que moi, alors la solution PEAR semble la meilleure route à long terme.

Une autre idée est d'explorer l' API Facebook Developer bibliothèque et voir si cela peut vous donner tout ce que vous recherchez.

Enfin, il y avait un moyen d'obtenir un flux RSS ... mais je ne peux pas sembler trouver des instructions qui fonctionnent plus, mais vous pourriez farfouiller aide Facebook si cela vous intéresse. La mienne finit par regarder quelque chose comme ceci:

http://www.new.facebook.com/feeds/status.php?id=[idnumber]&viewer=[viewer]&key=[key]&format=rss20

Créé 20/12/2008 à 23:09
source utilisateur

voix
3

Ceci est une réponse incomplète, mais ce que j'ai obtenu jusqu'à présent:

Tout d' abord: ajouter l'application de développeur sur FB . Ensuite , créez une nouvelle application. Appelez ça comme vous voulez.

Deuxièmement: Télécharger le client PHP. Dump quelque part sur votre hébergeur, à savoir / facebook /

Troisièmement: Copiez le code débutant suivant pour vous commencer dans un fichier php:

 <?php
 require_once('facebook/php/facebook.php');
 $facebook = new Facebook("YOUR_API_KEY","YOUR_SECRET_KEY");
 $result = $facebook->api_client->fql_query("SELECT status FROM user WHERE uid = YOURIDNUMBER");
 // OR --- they both get the same data
 $result = $facebook->api_client->users_getInfo(YOURIDNUMBER,'status');
 print_r($result);
 echo "<pre>Debug:" . print_r($facebook,true) . "</pre>"; // debug info
 ?>

Autre info:

  • Vous devez être connecté et que l'application ajoutée. OU vous donner l'application des autorisations offline_access et ont le aapplication ajouté.
  • Vous pouvez ajouter offline_access en tapant l'adresse suivante: http://www.facebook.com/authorize.php?api_key=YOUR_API_KEY&v=1.0&ext_perm=offline_access
  • plus d' informations sur les autorisations trouvées ici: http://wiki.developers.facebook.com/index.php/Extended_permissions
  • Je suis à un point d'arrêt: quoi que ce soit mon programme appelle la requête fqï ou users_getInfo, ma page arrête l'exécution du php? Je devine que il y a un nombre limité d'appels pour de nouvelles applications? Je ne l'ai jamais fait de développement de FB, donc je suis complètement nouveau pour elle. Peut-être faire l'appel et enregistrer votre récent statut (ou la plupart des statuts récents) dans votre propre base de données pour empêcher les appels excessifs à l'API?

J'espère que cela aide quelqu'un pour commencer!

EDIT: Il semble que FB ne vous permettra d' accéder à l' état someones, même si le offline_access est, à moins que vous êtes cette personne ou leur ami ( en fonction de leurs paramètres de confidentialité).

Je ne cependant finalement réussi à trouver le flux RSS dans la nouvelle version du profil: http://www.new.facebook.com/minifeed.php?filter=11

Créé 21/12/2008 à 10:03
source utilisateur

voix
0

Puisque je ne pouvais pas utiliser la route de l' API, je suis allé avec le RSS à l' adresse: http://www.new.facebook.com/minifeed.php?filter=11

Et utilisé la fonction PHP suivante, appelée StatusPress , avec certains de mes propres modifications, pour analyser le flux RSS de mon statut Facebook. Fonctionne très bien!

Créé 04/01/2009 à 20:35
source utilisateur

voix
0
<?php
// see http://github.com/facebook/php-sdk/blob/master/facebook.php
require './facebook.php';
// Create our Application instance.
// see http://www.youtube.com/watch?v=jYqx-RtmkeU for how to get these numbers
$facebook = new Facebook(array('appId' => 'XXX','secret' => 'XXX'));
// This call will always work since we are fetching public data.
// this could be /username or /username/friends etc...
// see developer api for FQL for examples
$status = $facebook->api('/haanmc/feed?limit=1');
?>
<p><?php print $status['data'][0]['message']; ?></p>
<p>Likes: <?php print $status['data'][0]['likes']; ?> | Comments: <?php print count($status['data'][0]['comments']['data']); ?></p>
<textarea style="width: 95%; height: 600px;"><?php print_r($status); ?></textarea>
Créé 23/04/2010 à 16:29
source utilisateur

voix
2

Je l'ai trouvé un moyen de récupérer votre dernier statut facebook. Voici comment faire:

1) Créer une application facebook et copiez votre secret de l' application et l' identifiant d'application.

2) accorder à l'application read_stream et offline_access à votre profil. ( Http://developers.facebook.com/docs/authentication/permissions ) Pour récupérer votre dernier état de l'application a besoin d' un access_token. Avec offline_access a accordé le access_token devrait « jamais » expirer. La meilleure façon de le faire est de cliquer sur le bouton généré par ce code: (assurez - vous de remplir votre identifiant d'application »et cookies défini sur true!)

<fb:login-button perms="read_stream,offline_access"></fb:login-button>
<div id="fb-root"></div>
<script src="http://connect.facebook.net/en_US/all.js"></script>
<script>FB.init({appId: 'your app id', status: true, cookie: true, xfbml: true});</script>

3) Maintenant , essayez de savoir ce access_token qu'il utilise. Le access_token est enregistré dans le cookie fbs_appId. Localiser l'aide de votre navigateur ou à l' aide $_COOKIE['fbs_appId']. Cherchez access_token=....

4) Maintenant que vous avez un (je l'espère) n'expirant access_token vous pouvez utiliser le code suivant:

$access_token='xxxxxxxxxxxxxxxxxxxx';
$appId='123456789132456789';
$appSecret='xxxxxxxxxxxxxxxxxxxx';
$profileId='123456789';

//http://github.com/facebook/php-sdk/blob/master/src/facebook.php
require 'facebook.php';

$facebook = new Facebook(array('appId' => $appId,'secret' => $appSecret));
$response = $facebook->api('/'.$profileId.'/feed?limit=1&access_token='.$access_token);

5) doit se trouver la partie du message: $response['data'][0]['message']

Je ne sais pas combien de temps le jeton d'accès est valide. Facebook dit:

Permet à votre application pour effectuer des demandes autorisées au nom de l'utilisateur à tout moment. Par défaut, la plupart des jetons d'accès expirent après une période de temps pour garantir que les applications ne font que des demandes au nom de l'utilisateur lorsque l'utilisent activement l'application. Cette autorisation fait le jeton d'accès retourné par notre point de terminaison OAuth longue durée.

Créé 27/04/2010 à 09:56
source utilisateur

voix
1

Je l'ai eu de travail en utilisant le poste de Jens pour récupérer un access_token valide. Ensuite, j'extrait les messages d'état et le moment de l'affichage du fichier XML à l'aide du code ci-dessous (vous pouvez changer $ limite pour afficher plus ou moins des messages d'état, ou utiliser un formulaire pour changer).

Assurez - vous de mettre dans votre Facebook ID et l'accès que vous avez obtenu jeton de l'application que vous avez créé (voir le poste de Jens ). Vous pouvez vérifier la sortie de ce script ici .

S'amuser!

<?php
if(isset($_POST['limit'])) {
    $limit = $_POST['limit'];
}
else {
    $limit = 3; // number of status messages to display
}
$f = fopen ("https://api.facebook.com/method/status.get?uid=YOUR_FACEBOOK_ID&limit=".$limit."&access_token=YOUR_ACCESS_TOKEN", "r");

while ($line= htmlentities(fgets($f))) {
    if ($line===FALSE) print ("FALSE\n");
    else
    {
        $content = $content." ".$line;
    }
}
fclose ($f);

$message = explode("&lt;message&gt;", $content); // search for the <message> tag
$message_cnt = count($message);
$msg_index = 0;

$time = explode("&lt;time&gt;", $content); // search for the <time> tag

for($i=1; $i<$message_cnt; $i++)
{
    $tmp = explode("&lt;/message&gt", $message[$i]);
    $msg[$msg_index] = $tmp[0]; // status message

    $tmp2 = explode("&lt;/time&gt", $time[$i]);
    $t[$msg_index++] = $tmp2[0]; // time of posting
}

for($i=0; $i<$msg_index; $i++)
{
     echo("<span class=\"status\">".preg_replace('!\015\012|\015|\012!','<br>',$msg[$i])."</span><br>\n
           <span class=\"date\">on ".date("d.m.Y", $t[$i])." at ".date("H:i",$t[$i])."</span><br><br>\n");

}
?>
Créé 01/09/2010 à 22:02
source utilisateur

voix
2

Voici une fonction très simple si vous voulez juste pour obtenir le dernier statut. Il ne dépend pas du SDK Facebook ou quoi que ce soit. Vous avez juste besoin d'un soutien CURL et JSON.

fonction PHP simple pour obtenir le statut facebook

Créé 09/11/2010 à 21:57
source utilisateur

voix
1

J'ai essayé des tas de tutoriels au cours des derniers jours et aucun d'entre eux ont travaillé. Je pense que cela peut être dû à facebook modifier leurs exigences api. C'est le seul que j'ai trouvé qui fonctionne à l'heure actuelle:

http://www.deanblog.co.uk/article/13/adding-a-facebook-status-feed-to-your-website-with-php

Créé 16/06/2011 à 13:19
source utilisateur

voix
1

Il suffit d' utiliser le cadre PHPforFB ( de www.phpforfb.com/en/ ) pour le moyen le plus rapide.

Le code ressemble à ceci:

require_once('phpforfb_framework.php');

$structInit = array('app_id' => APP_ID,'app_name' => APP_NAME,'sec_key' => APP_SECKEY);

$FacebookAPP = new PHPforFB($structInit);

if($FacebookAPP->lastErrorCode>0){
    //Creation failed => Display error message and exit
    echo "PHPforFB Error: ".$FacebookAPP->lastErrorCode." -> ".$FacebookAPP->lastError;
}else{
    //PHPforFB framework established

    if($FacebookAPP->userLoggedIn === TRUE){

        //If the user is logged in at Facebook:
        //Here you can determine if the user has at least once before
        //granted basic permissions to your application.
        if($FacebookAPP->userAuthenticated === FALSE){

            //The user has not yet granted permissions
            //**your code here**
        }else{
            //The user has already granted permissions, therefore his Facebook ID
            //is known to us. It is always available in $FacebookAPP->userID:

            $userID = $FacebookAPP->userID;
            //**your code here**
        }
    }
}
Créé 20/02/2012 à 20:10
source utilisateur

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more