Создание события Facebook для конкретной страницы с помощью FB Graph API - PullRequest
8 голосов
/ 11 октября 2010

Мне нужно синхронизировать события от моей CMS до определенной страницы Facebook.Я пытаюсь создать событие для моей созданной страницы, но по-прежнему ничего не получается.Я могу просто создавать события, связанные с пользователем, но не со страницей.Код использует Facebook PHP-SDK .

$page_id = '31337';
$page = $facebook->api("/{$page_id}");
$event_data = array(
    'name'          => 'Event: ' . date("H:m:s"),
    'start_time'    => time() + 60*60,
    'end_time'      => time() + 60*60*2,
    'owner'         => $page
);
$post = $facebook->api("/{$page_id}/events", 'POST', $event_data);

После выполнения этого фрагмента событие создается, но, как я уже говорил, оно принадлежит пользователю, хотя «владелец» в данных - это страница,Мое приложение имеет права доступа manage_pages, create_event и publish_stream.Что мне не хватает?

Решение

На "OLD REST API" Документация Я обнаружил, что для "нового API Graph" по-прежнему нужен параметр page_id .Таким образом, переменная $ event_data должна выглядеть следующим образом:

$event_data = array(
    'name'          => 'Event: ' . date("H:m:s"),
    'start_time'    => time() + 60*60,
    'end_time'      => time() + 60*60*2,
    'page_id'       => $page['id]
);

Ответы [ 4 ]

3 голосов
/ 11 октября 2010

«Создает событие от имени пользователя, если приложение имеет активный ключ сеанса для этого пользователя;в противном случае он создает событие от имени приложения. »- Источник

Это отвечает на ваш вопрос?

1 голос
/ 01 апреля 2011

Вам необходимо передать токен доступа управляемой страницы, который вы можете получить по адресу graph.facebook.com/me/account (конечно, передав свой токен доступа, чтобы получить список фан-страниц, которыми вы управляете).Там вы увидите список токенов доступа для каждой из своих фан-страниц, используйте их для создания событий или публикации на своей фан-странице.

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

Установите access_token на страницу перед созданием сообщения. Убедитесь, что ваше приложение имеет разрешение «manage_pages», чтобы это работало.

Как это:

$page = $fbApi->api('/'.<page_id>,'GET',array('fields'=> 'access_token'));
$fbApi->setAccessToken($page['access_token']);
0 голосов
/ 03 ноября 2010

Интересно - мой опыт с точностью до наоборот.Я попытался создать событие с параметром page_id и получил ошибку прав доступа.Удалил page_id и все заработало нормально.Хитрость заключалась в том, чтобы использовать токен доступа к приложению, а не пользовательский.

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