Управление страницами Facebook с помощью PHP

#php #facebook #facebook-graph-api

#php #Facebook #facebook-graph-api

Вопрос:

Я хочу глубже интегрировать свой текущий веб-сайт с Facebook, используя фан-страницу (обратите внимание: я заметил протокол Open Graph, который поддерживает Facebook, но я хочу создать фан-страницу для всего веб-сайта).
Я знаю, что вы можете создавать фан-страницы с помощью Facebook и управлять ими, но я ищу способ сделать это с помощью PHP-скрипта — например, размещать посты на стене фан-страницы, создавать события с помощью фан-страницы и в идеале — создавать дополнительные фан-страницы «на лету».
Просмотрев раздел Facebook для разработчиков, я не нашел способа выполнять эти задачи извне, используя Facebook API.
Итак, мой вопрос: как бы вы этого добились?

Спасибо!

Ответ №1:

Публикация сообщений на вашей странице и создание событий — это относительно тривиальные задачи. Для этого вы можете использовать Graph API.

Ознакомьтесь конкретно с разделом о публикации. Это дает вам общий обзор того, как работает публикация, и это может быть применено по всему графику.

Кроме того, в документации о части Graph API, посвященной событиям, есть пример cURL post о том, как создать новое событие с помощью Graph API.

Для публикации чего-либо на вашей странице Facebook потребуется manage_pages расширенное разрешение, и, вероятно, неплохо бы также получить offline_access разрешение.

Пример публикации на стене вашей страницы и создания события (на php) будет выглядеть примерно так:

 <?php

require 'facebook.php';

$fb = new Facebook(array(
    'appId' => FB_APP_ID,
    'secret' => FB_APP_SECRET,
    'cookie' => true
));

$your_page_id = '123123123';

//get the access token to post to your page via the graph api
$accounts = $fb->api("/me/accounts");
foreach ($accounts['data'] as $account)
{
    if ($account['id'] == $your_page_id)
    {
        //found the access token, now we can break out of the loop
        $page_access_token = $account['access_token'];
        break;
    }
}

try
{
    //publish a story to the page's wall (as the page)
    $post_id = $fb->api("/{$your_page_id}/feed", "POST", array(
        'message' => "Hello to all my fans, I love you!"
        'access_token'  => $page_access_token;
    ));

    echo "Post published. ID: {$post_id}<br>";

    //create a new event.
    $event_id = $fb->api("/{$your_page_id}/events", "POST", array(
        "name"  => "My Totally Awesome Event, You Better Show UP!",
        "start_time" => time(), //it starts now...duh!
        "location"  => "Anywhere, USA"
    ));

    echo echo "Event created. ID: {$event_id}<br>";
}
catch (Exception $e)
{
    var_dump($e);
}
  

Что касается создания страниц «на лету», единственный способ сделать это — использовать протокол Open Graph. Единственным ограничением здесь является то, что страницы должны иметь уникальные URL. Таким образом, вы можете присвоить каждому из ваших объектов Open Graph уникальный идентификатор и присвоить им URL, подобный http://www.mysite.com/pages?id=123456 . Это позволит вам выводить теги Open Graph, необходимые для создания страницы на FB. Затем вы можете использовать Graph API, чтобы получить идентификатор объекта Open Graph после того, как кому-то это понравится, вот так: http://graph.facebook.com/?ids=http://www.mysite.com/pages?id=123456 .

Вы можете публиковать на этих объектах Open Graph точно так же, как вы бы публиковали на стандартной странице Facebook.

Надеюсь, это поможет!

Комментарии:

1. Отличный ответ, но у меня есть 2 вопроса: 1) обязательно ли вам связывать свою личную учетную запись со страницей, чтобы управлять ею? и 2) как вы должны управлять страницами Open Graph, если с ними не связана какая-либо учетная запись?

2. @GZaidman — Если вы администрируете страницу Facebook (не страницу Graph), ваша «Частная» учетная запись должна быть администратором Страницы. Кроме того, у вас должно быть установлено любое приложение, которое вы собираетесь использовать для управления страницей, в вашей «Частной» учетной записи. Что касается OG pages, вы устанавливаете идентификатор приложения в тегах Graph (meta), чтобы FB знал, какая страница может им управлять (см. Документы администратора Open Graph Protocal ).). Стоит отметить, что в любом случае на вашей учетной записи FB должно быть установлено ваше приложение.

3. похоже, что это смешивание $ facebook и $ fb

4. хороший улов @Henry, забавно, что никто не ловил это больше года! Я пошел дальше и исправил это