Некоторое время назад я хотел добавить пользовательский Facebook-канал на сайте для того, чтобы отображать записи из клиента Facebook на странице. Сайт был неплохой и и я не хотел портить стандартным Facebook фирменным фреймом-лентой новостей.
Так я боролся через Facebook сайт разработчиков и после нескольких недель беспорядков я был в состоянии установить вместе PHP-скрипт, который взаимодействует с Facebook API и извлекает данные канала, чтобы позволить вам отображать это на твое усмотрение!
Вы можете скачать стандартный плагин для канала Facebook, но для кто хочет приключений я даю краткий обзор того, как получить и отобразить данные json из Facebook в случае, если вы захотели попробовать это самостоятельно.
Вот основная последовательность событий:
1) Зарегистрироваться как разработчик с Facebook, создать “приложение” и получить маркер доступа.
Перейти на страницу разработчиков: https://developers.facebook.com/ и зарегистрироваться там.
2) найти ID страницы в Facebook страницу, которую вы хотите отобразить.
Если у вас есть Facebook страницу с URL вроде этого: https://www.facebook.com/AndreyEx затем идентификатор страницы-это просто ‘AndreyEx’. Если ваш URL-Адрес страницы является структурированный такой: https://www.facebook.com/pages/name-of-business/1525282521084169 затем идентификатор страницы на самом деле число в конце, так что в этом случае ‘1525282521084169‘.
3) открыть в формате json.
Просто поставьте ваш ID страницы и маркер доступа в URL ниже и вы теперь имеете доступ к json-массиву данных.
https://graph.facebook.com/YOUR_PAGE_ID/posts?access_token=YOUR_ACCESS_TOKEN
Это будет выглядеть примерно так:
4) получать данные и расшифровать его.
$page_id = 'YOUR_PAGE_ID'; $access_token = 'YOUR_ACCESS_TOKEN'; //Get the JSON $json_object = @file_get_contents('https://graph.facebook.com/' . $page_id . '/posts?access_token=' . $access_token); //Interpret data $fbdata = json_decode($json_object);
5) цикл по массиву данных, и отображения каждого поста
foreach ($fbdata->data as $post ) { $posts .= '<p><a href="' . $post->link . '">' . $post->story . '</a></p>'; $posts .= '<p><a href="' . $post->link . '">' . $post->message . '</a></p>'; $posts .= '<p>' . $post->description . '</p>'; $posts .= '<br />'; }
Собирая все вместе получаем:
$page_id = 'YOUR_PAGE_ID'; $access_token = 'YOUR_ACCESS_TOKEN'; //Get the JSON $json_object = @file_get_contents('https://graph.facebook.com/' . $page_id . '/posts?access_token=' . $access_token); //Interpret data $fbdata = json_decode($json_object); foreach ($fbdata->data as $post ) { $posts .= '<p><a href="' . $post->link . '">' . $post->story . '</a></p>'; $posts .= '<p><a href="' . $post->link . '">' . $post->message . '</a></p>'; $posts .= '<p>' . $post->description . '</p>'; $posts .= '<br />'; } //Display the posts echo $posts;
Некоторые заметки:
1) в Facebook страницы должны быть публичными, это означает, что должен в состоянии получить доступ к странице без необходимости входа в Facebook.
2) Если веб-сервер с PHP настройках есть опция allow_url_fopen отключен, то функции file_get_contents не работают. Если это так, то у вас есть два варианта: либо установите его в положение ON путем редактирования вашего PHP.ini-файл (на Apache), а параметр опция allow_url_fopen = on.
Если вы боретесь, чтобы получить свой канал для работы или просто не хотите тратить время, выясняя, как отобразить его так, как вы хотите затем рассмотреть вопрос о установки плагина. Он доступен как плагин для WordPress, настраиваемый и позволяет отображать всю ширину фотографии, видео, события, комментарии и многое другое.