Публиковать на стене Facebook как страницу, а не как пользователь - PullRequest
12 голосов
/ 16 марта 2011

Можно ли публиковать сообщения на стене Facebook как приложение, а не как пользователь? Насколько я понимаю, приложение не является действительным пользователем Facebook, но есть многочисленные комментарии о публикации как Страницы, а не как Пользователя или Приложения.

Как я могу сделать это с помощью PHP Facebook API?

Ответы [ 2 ]

10 голосов
/ 16 марта 2011

Вам нужны разрешения publish_stream,manage_pages. Код выглядит примерно так:

<?php
// This code is just a snippet of the example.php script
// from the PHP-SDK <https://github.com/facebook/facebook-php-sdk/blob/master/examples/example.php>
require '../src/facebook.php';

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

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

if ($user) {
  try {
    $page_id = 'page_id';
    $page_info = $facebook->api("/$page_id?fields=access_token");
    if( !empty($page_info['access_token']) ) {
        $args = array(
            'access_token'  => $page_info['access_token'],
            'message'       => "I'm a Page!"
        );
        $post_id = $facebook->api("/$page_id/feed","post",$args);
    } else {
        $permissions = $facebook->api("/me/permissions");
        if( !array_key_exists('publish_stream', $permissions['data'][0]) ||
            !array_key_exists('manage_pages', $permissions['data'][0])) {
            // We don't have one of the permissions
            // Alert the admin or ask for the permission!
            header( "Location: " . $facebook->getLoginUrl(array("scope" => "publish_stream, manage_pages")) );
        }

    }
  } 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'=>'manage_pages,publish_stream'));
}

// ... rest of your code
?>

Я написал подробное руководство по этому вопросу: Как: публиковать на странице Facebook как страницу, а не как администратор с помощью PHP-SDK

4 голосов
/ 16 марта 2011

Сначала вы должны авторизовать пользователя через Facebook connect и запросить разрешение manage_pages как часть этого запроса. Вы можете использовать это разрешение для получения токена и секрета для данной страницы. Затем вы используете их для авторизации запросов, а не для токена / секрета, которые вы получили для пользователя.

Проверьте раздел «Страница входа» на этой странице для получения дополнительной информации: http://developers.facebook.com/docs/authentication/

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