Размещение на странице как страница - PullRequest
0 голосов
/ 20 февраля 2012

Я пытаюсь автоматизировать публикацию (в 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/")

?>

Ответы [ 2 ]

1 голос
/ 20 февраля 2012

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

0 голосов
/ 22 февраля 2012

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

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

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

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