PHP API-код Facebook не работает со страницами для получения сообщений на стене - PullRequest
0 голосов
/ 03 августа 2011
<?php
require '../src/facebook.php';
try
{
// Create our Application instance (replace this with your appId and secret).
$facebook = new Facebook(array(
  'appId'  => '120875194666085',
  'secret' => '0272027b5c5c1dabde81096497970c56',
  'scope' => 'read_stream',
));

$user = $facebook->getUser();


if ($user) {
  try {
    // Proceed knowing you have a logged in user who's authenticated.
    $user_profile = $facebook->api('/me/feed');

  } catch (FacebookApiException $e) {
    error_log($e);

    $user = null;
  }
}

// Login or logout url will be needed depending on current user state.
if ($user) {
  $logoutUrl = $facebook->getLogoutUrl();
} else {
  $loginUrl = $facebook->getLoginUrl(array('scope' => 'read_stream'));
}

}
catch(FacebookApiException $e){}
?>
<?php

     if ($user): ?>
    <?php else: ?>
      <div>
        Login using OAuth 2.0 handled by the PHP SDK:
        <a href="<?php echo $loginUrl; ?>">Login with Facebook</a>
      </div>
    <?php endif ?>

    <?php if ($user): ?>

    <?php 
        for($i = 0; $i < 25; $i++)
           {
        echo "<br />"; 
        echo $user_profile['data'][$i]['from']['name'];
              echo " : "; 
        echo $user_profile['data'][$i]['message']; 
           }
    ?>
    <?php endif ?>

Это нормально работало для обычных учетных записей, но когда я попытался войти с учетной записью «Страницы» в Facebook, это не сработало вообще. Любая помощь в этом вопросе? Кроме того, когда я добрался до документации API Графиков Facebook, даже эти ссылки не дают мне правильную информацию о стене Страницы. Из того, что я собрал, мне пришлось https://graph.facebook.com/[company идентификатор страницы] / feed ?? access_token = [access_token] чтобы заставить его работать (что я не уверен, как перевести на API Facebook.

1 Ответ

0 голосов
/ 03 августа 2011

Вы должны иметь возможность доступа к лентам фан-страниц, если у вас есть access_token .

Если у вас есть действительный авторизованный пользователь, который вошел в систему

$fan_page_feed = $facebook->api('/COMPANY_PAGE_ID/feed');

вернет объект JSON, содержащий данные фида.

В качестве альтернативы вы можете использовать приложения access_token для получения информации. Этот пример получает фид со страницы Facebook Platfrom (для краткости сценарий также предполагает, что все будет работать отлично - вы должны реализовать собственную обработку ошибок, как считаете нужным):

<code><html><head></head>
<body>
<pre>
<?php
require ('facebook.php');

$facebook = new Facebook(array(
            'appId'  => 'YOUR_APP_ID',
            'secret' => 'YOUR_APP_SECRET',
            'cookie' => true
        ));

$result = $facebook->api('oauth/access_token', array('client_id'=>'YOUR_APP_ID', 'client_secret'=>'YOUR_APP_SECRET', 'grant_type'=>'client_credentials'));
// $result should contain 'access_token=VALID_ACCESS_TOKEN'
$access_token = explode('=',$result);
$fan_page_feed = $facebook->api('/19292868552/feed', array('access_token'=>$access_token[1]));

print_r($fan_page_feed);
?>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...