Публикация на PAGE как PAGE

Я пытаюсь автоматизировать публикацию (на PHP) на странице Facebook в качестве страницы Facebook. У меня возникают проблемы с получением токена с неистекшим сроком действия и последующей публикацией в качестве страницы. Кажется, я могу опубликовать как пользователь с не истекающим токеном, но не как страницу. Поскольку документация оставляет желать лучшего в плане примеров, может ли кто-нибудь описать шаги, чтобы это произошло? Я создал приложение и предоставил пользователю права manage_pages, publish_stream и offline_access. Когда я пытаюсь опубликовать на странице (без проблем), он публикуется как пользователь, а не как страница. Я борюсь с концепцией с неограниченными токенами доступа для пользователя и не истекающими токенами для страницы.

Код для предоставления разрешений:

<?
require_once 'facebook.php';
$app_id = "APP_ID";
$app_secret = "APP_SECRET";

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

if(is_null($facebook->getUser()))
{
 header("Location:{$facebook->getLoginUrl(array('req_perms' => 'user_status,publish_stream,user_photos,manage_pages,offline_access'))}");
 exit;
}
?>

и код для публикации:

<?
require_once 'facebook.php';

$app_id = "APP_ID";
$app_secret = "APP_SECRET";
$page_id = "PAGE_ID";
$page_access_token = "PAGE_TOKEN";
$facebook = new Facebook(array(
 'appId' => $app_id,
 'secret' => $app_secret,
 'cookie' => true
));

if( !empty($page_access_token) ) {
    $args = array(
        'access_token'  => $page_access_token,
        'message'       => "Test post"
    );
    $post_id = $facebook->api("/$page_id/feed","post",$args);
} else {
}
header("Location: http://example.com/")

?>

person Curtis Holzschuh    schedule 20.02.2012    source источник


Ответы (2)


Знаете ли вы, что offline_access устарел?

person Michael Pryor    schedule 20.02.2012
comment
Я этого не видел... спасибо. Итак, я предполагаю, что для автоматической публикации на странице как на странице нужно каждый раз получать новый токен (или обменивать токен)? Любой образец? - person Curtis Holzschuh; 21.02.2012

только что создал новое приложение. Убедитесь, что устаревший автономный доступ включен. Зашел в проводник, нашел мое новое приложение в раскрывающемся списке, предоставил себе manage_pages, перешел к me/accounts, взял один из токенов доступа к странице, а затем проверил его. Облом, истечение 1 часа, так что это нехорошо. Итак, я попытался обменять токен страницы на 1 час и получил сообщение об ошибке от Facebook.

Я вернулся к токену доступа пользователя и обменял его на 60-дневный. В линтере проверил, что это 60 день. Вернулся к me/accounts, взял один из токенов доступа к странице и проверил его. Сюрприз! Получил 60-дневный токен оттуда.

Итак, мораль этой истории в том, что вы не можете обменивать токены страниц, только токены пользователей. Но с 60-дневным токеном пользователя вы можете получить 60-дневный токен страницы. :)

person DMCS    schedule 21.02.2012