#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, забавно, что никто не ловил это больше года! Я пошел дальше и исправил это