2011-04-27 6 views

Répondre

2

Vous avez besoin de l'autorisation étendue read_stream pour votre utilisateur. Si vous faites ceci pendant une session d'utilisateur active (par exemple, n'utilisant pas l'autorisation étendue offline_access), il devient alors une tâche plutôt triviale de lire les mises à jour.

Exemple (en utilisant php):

<?php 
require 'facebook.php'; 

// Create our Application instance (replace this with your appId and secret). 
$facebook = new Facebook(array(
    'appId' => 'YOUR APP ID', 
    'secret' => 'YOUR APP SECRET', 
    'cookie' => true, 
)); 

try 
{ 
    $user_feed = $facebook->api('/me/home/'); 

    /** 
    * You now have the users's news feed, you can do with it what you want. 
    * If you want to prune it for friends only...you need to do a little more 
    * work.. 
    **/ 
    $friend_only_feed = array(); 

    if (!empty($user_feed['data'])) 
    { 
     $user_feed_pagination = $user_feed['paging']; 
     $user_feed = $user_feed['data']; 

     $friends = $facebook->api('/me/friends', 'GET'); 

     $friend_list = array(); 

     if (!empty($friends['data'])) 
     { 
      $friends = $friends['data']; 


      foreach ($friends as $friend) 
      { 
       $friend_list []= $friend['id']; 
      } 
     } 

     $friend_only_feed = array(); 
     foreach ($user_feed as $story) 
     { 
      if (in_array($story['from']['id'], $friend_list)) 
      { 
       $friend_only_feed []= $story; 
      } 
     } 
    } 

} 
catch (FacebookApiException $e) 
{ 
    /** 
    * you don't have an active user session or required permissions 
    * for this user, so rdr to facebook to login. 
    **/ 

    $loginUrl = $facebook->getLoginUrl(array(
     'req_perms' => 'publish_stream' 
    )); 

    header('Location: ' . $loginUrl); 
    exit; 
} 


print_r($friend_only_feed); 

devrait couvrir obtenir que le flux de nouvelles des utilisateurs et obtenir tous leurs messages de leurs amis (ne comprend pas les pages mises à jour). Si vous n'avez pas accès, il redirigera l'utilisateur pour se connecter et vous donner accès.

Il convient également de noter que le point de terminaison par défaut home vous renvoie uniquement les 25 dernières histoires. Si vous avez besoin de revenir plus loin, la touche paging sur la réponse facebook vous permet de faire plusieurs requêtes pour remonter plus loin, ou vous pouvez passer un tableau à la méthode api() en disant à Facebook que vous voulez une limite plus grande.

<?php 
$user_feed = $facebook->api('/me/home/', 'GET', array(
    'limit' => 500 
)); 
+0

Cela a fonctionné mais si je veux aussi des mises à jour de statut, est-ce même posible? – DaDu

+0

@DaDu Une mise à jour de statut est définie comme tout ce qu'un utilisateur publie sans aucun type de pièce jointe. Cela signifie tout ce qu'un utilisateur publie qui n'est pas un lien, une vidéo, une photo, etc. Le graphique identifie réellement le type de publication de chaque élément sur le point de terminaison/home en utilisant la touche "type" pour chaque élément. J'espère que cela pourra aider! –

Questions connexes