阅读用户Wall Post和贴在墙上的其他人

时间:2011-12-14 18:46:34

标签: facebook facebook-graph-api

我是facebook图形API的新手,但我知道基础知识。现在,我需要帮助您了解如何使用read_stream阅读用户墙帖和其他在任何用户的墙上发布的帖子。但我不知道怎么称呼它。我尝试了某种方式,但我只能读取名称和基本信息。我需要帮助阅读对象。请帮帮我!!!

<?php
define('FACEBOOK_APP_ID', 'xxxxxx');
define('FACEBOOK_SECRET', 'xxxxxx');
function get_facebook_cookie($app_id, $application_secret) {
$args = array();
parse_str(trim($_COOKIE['fbs_' . $app_id], '\\"'), $args);
ksort($args);
$payload = '';
foreach ($args as $key => $value) {
if ($key != 'sig') {
  $payload .= $key . '=' . $value;
 }
 }
  if (md5($payload . $application_secret) != $args['sig']) {
   return null;
  }
 return $args;
  }
  $cookie = get_facebook_cookie(FACEBOOK_APP_ID, FACEBOOK_SECRET);
   ?>
   <!DOCTYPE html>
   <html xmlns="http://www.w3.org/1999/xhtml"
         xmlns:fb="http://www.facebook.com/2008/fbml">
   <body>
   <?php
   echo 'Your Facebook ID: '.$cookie;
    if ($cookie) {
   //cookie is set, user is logged in
   $user = json_decode(file_get_contents('http://graph.facebook.com/'.$cookie['uid']));
   //Display the facebook user ID, name, gender and Facebook URL in the web browser
   echo '<br />';
   echo 'Your Facebook ID: '.$user->{'id'};
   echo '<br />';
   echo 'Your name: '.$user->{'name'};
   echo '<br />';
   echo 'Your gender: '.$user->{'gender'};
   echo '<br />';
   echo 'Your Facebook URL: '.$user->{'link'};
   echo '<br />';
   echo '<img src="http://graph.facebook.com/'.$user->{'id.'/picture"                      alt="'.$user->       {'name'}.'"/>';
   echo '<br />';
   echo '<fb:login-button autologoutlink="true"></fb:login-button>';
   }
   else
   {
   //user is not logged in, display the Facebook login button
          echo '<h2>Facebook Application Test page</h2>';
   echo '<br />';
   echo' message somethng';
   </body>
   </html>

1 个答案:

答案 0 :(得分:0)

首先,您必须获得用户的许可

    $url = "https://graph.facebook.com/oauth/authorize?"
    ."client_id=".$app_id."&"
    ."redirect_uri=http://apps.facebook.com/".$app_name."/&scope=read_stream";

    <script language="javascript">window.open('<?php echo $url ?>', '_parent', '');</script>

然后你可以得到用户的墙。这里有一个例子。

    if(isset($_GET["code"])){
        if(isset($_REQUEST['state']) == isset($_SESSION['state'])) {
            $token_url = "https://graph.facebook.com/oauth/access_token?"
                         . "client_id=" . $app_id . "&redirect_uri=" . "http://apps.facebook.com/".$app_name."/"
                         . "&client_secret=" . $app_secret . "&code=" . $_GET["code"];
            $response = @file_get_contents($token_url);
            $params = null;
            parse_str($response, $params);
            $graph_url = "https://graph.facebook.com/".$user_id."/feed/?access_token=".$params['access_token'];
            $user = json_decode(file_get_contents($graph_url));
            foreach($user as $feeds)
            {
                foreach($feeds as $feed)
                {
                    if(isset($feed->link))
                    {
                        echo $feed->link."<br>";
                    }
                }
            }
        }
    }