Как вы получаете самые последние сообщения от данного пользователя на графике Facebook? - PullRequest
1 голос
/ 05 ноября 2011

Я пытаюсь получить последние сообщения друзей данного пользователя (php)
$ Fb = новый Facebook (массив ('appId' => 'xxxxxxxxxxxxxx', 'secret' => 'xxxxxxxxxxxxxxx'));
$ access_token = $ Fb-> getAccessToken ();
// я получаю токен
$ url = "https://graph.facebook.com/".$id."/posts?access_token=".$access_token;
$ data = file_get_contents ($ url); // работает с любой другой командой.
$ var = json_decode ($ data, true); // как массив, а не объект
$ txt. = display_tree ($ var); // мой собственный способ отображения
Нет результата.

Ответы [ 3 ]

1 голос
/ 06 ноября 2011
  • Используйте Facebook PHP SDK, чтобы получить авторизацию от пользователя, и используйте метод "scope", чтобы получить разрешение "read_stream", которое позволит увидеть поток профиля пользователя, более известный как "wall".", но, поскольку вы также не хотите видеть там обновления друзей, вы можете запросить разрешение" offline_access ", а затем, после того как пользователь войдет в Facebook, сайт вернет вам данные со стенами пользователей.и там домашние посты (домашние посты содержат данные, на которые они подписаны, поэтому будут посты друзей и посты других страниц).

Затем, когда у вас есть разрешение «offline_access», выВы можете получить эти данные в любое время, используя токен доступа пользователя, указанный в этом разрешении.

Этот файл проверяет, находится ли пользователь в сети Facebook, в противном случае он будет перенаправлен на страницу входа в систему ИЕсли пользователь еще не дал разрешение, его об этом попросят.«Область» после loginURL - это то место, куда вы хотите поместить необходимые разрешения.


<code><?php
require 'facebook.php'; // Make sure to have the Facebook PHP SDK

// Create our Application instance (replace this with your appId and secret).
$facebook = new Facebook(array(
  'appId'  => 'APPID',
  'secret' => 'APPSECRET',
));
// ----------------------------------------------------------------------------------------
// ----------------------------------------------------------------------------------------

// Get User ID
$user = $facebook->getUser();

/* We may or may not have this data based on whether the user is logged in.
   If we have a $user id here, it means we know the user is logged into
   Facebook, but we don't know if the access token is valid. An access
   token is invalid if the user logged out of Facebook. */

if ($user) {
  try {
    // Proceed knowing you have a logged in user who's authenticated.
    // These are the graph calls -->

    $dt = $facebook->api('/me');
    $lk = $facebook->api('/me/likes');
  } catch (FacebookApiException $e) {
    error_log($e);
    $user = null;
  }
}

// ----------------------------------------------------------------------------------------
// ----------------------------------------------------------------------------------------
// Handler for Login Status
if ($user) {
  $logoutUrl = $facebook->getLogoutUrl();
} else {
  $loginUrl = $facebook->getLoginUrl(array("scope" => "email,user_birthday,user_likes,user_location,offline_access,read_stream"));
}
// ----------------------------------------------------------------------------------------
?>

<?php if (!$user): header ('Location:'.$loginUrl.''); //checks if the user is logged in
else: 
        // Do Something here. This next bit of code shows what comes out of those calls.
      echo "<pre>"; 
      print_r($dt);
      echo"
"; echo""; echo"
"; 
      print_r($lk);
      echo"
"; endif?>
0 голосов
/ 05 ноября 2011

Вероятно, есть ошибка, которую выдает Facebook, которую вы не можете прочитать, потому что вы не можете по умолчанию прочитать страницы ошибок.

file_get_contents() должен иметь данный stream_context (третий параметр), который говорит 'ignore_error' => TRUE

В противном случае вы не видите, какую ошибку Facebook выдает в виде json, и вместо этого функция будет возвращать только FALSE.

stream_context_create ()

0 голосов
/ 05 ноября 2011

Попробуйте сначала в инструменте графического обозревателя Facebook, чтобы вы изолировали проблему от любых проблем в своем php-коде.

https://developers.facebook.com/tools/explorer

Просто глядя на ваш код, похоже, что вы не запрашивали разрешения на чтение_потока? Один только маркер доступа только даст вам общедоступные сообщения, и, возможно, у данного пользователя нет общедоступных сообщений.

http://developers.facebook.com/docs/reference/api/user/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...