Отображение новостей / хронологий на Facebook на веб-сайте

У меня есть клиент, который хочет, чтобы их новостная лента / график времени для своей компании отображались на их веб-сайте. Это не личный график / новостная лента, а организация.

Все, что я читал, кажется, несколько лет, но, похоже, результат: Facebook хочет хранить все свои данные на своих серверах – они не хотят, чтобы люди его экспортировали, а людям запретили пытаться. (Как я уже сказал, этой информации было несколько лет.)

Самая близкая текущая вещь, которую я нашел, – это плагин Feed Feed , но это только регистрирует взаимодействие другого пользователя с сайтом или FB-приложением.

Кто-нибудь успел экспортировать свои общедоступные обновления на внешний веб-сайт, или мне нужно сказать моему клиенту, что это невозможно?

Спасибо за любую помощь!

AFAIK, это возможно, в некотором роде. Простейшим решением, но не лучшим для вашей ситуации, может быть плагин Like Box :

«Ящик» позволяет пользователям:

Посмотрите, сколько пользователям уже нравится эта страница, и какие из их друзей тоже нравятся
Прочтите последние сообщения на странице
Как страница с одним щелчком мыши, без необходимости посещать страницу

Лучшее решение: используйте свой API-интерфейс Graph , однако вы можете только читать данные (как JSON), а не точно реплицировать поток на веб-сайте своего клиента, не ожидайте, что сможете применять стили, используемые facebook (т. t быть в состоянии очистить его), вам придется либо реплицировать его, либо создать свои собственные стили.

Теперь, если страница является общедоступной и может быть прочитана всеми, так как в ней нет правил конфиденциальности, вы можете просто вызвать URL-адрес с любым допустимым access_token (может также быть app access_token):

https://graph.facebook.com/<clientpagename_OR_id>/feed 

или

 https://graph.facebook.com/<clientpagename_OR_id>/posts 

в зависимости от того, что вам нужно, попробуйте использовать api explorer для проверки этого (а также просмотреть возвращаемые данные). Когда будет много сообщений, будут отображаться URL-адреса страниц, которые вы также сможете заметить в проводнике.

Если страница не является общедоступной, вам потребуется access_token с разрешением read_stream, поэтому вам нужно создать приложение facebook , типа веб-сайта. Затем запустите администратор страницы вашего клиента, чтобы разрешить это приложение, с разрешения read_stream . После этого вы можете вызывать URL-адреса с access_token, которые вы получаете после аутентификации, и можете продолжить чтение потока.

 https://graph.facebook.com/<clientpagename_OR_id>/posts?access_token=thetoken 

В этом случае используйте PHP SDK , чтобы упростить аутентификацию и вызвать график api.

Важные ссылки: руководство по проверке подлинности , обновления в режиме реального времени .

Удачи.

Изменить: вам нужен токен доступа для доступа к каналам или сообщениям, но вам необязательно нужен токен доступа для чтения самого объекта страницы, как указано в этой документации .
Примечание от документа:

Для соединений, для которых требуется токен доступа, вы можете использовать любой действительный токен доступа, если страница является общедоступной и не ограничена. Соединения на ограниченных страницах требуют токена доступа пользователя и видны только пользователям, которые соответствуют критериям ограничения (например, возраст), установленным на странице.

Вы можете получать новостные ленты организации, используя API-интерфейс Facebook. Временная шкала не может быть получена через открытый API.

Для этого нет плагина. Вам нужно будет позвонить

 https://graph.facebook.com/USER_ID/home 

который дает вам ответ JSON.

Затем вам нужно проанализировать JSON в новом макете на веб-странице организации.

Смутно, вызывая

 https://graph.facebook.com/USER_ID/feed 

не извлекает ленту новостей, а настенные сообщения пользователя, которые могут быть или не быть такими, какие вы хотите.

Вот учебник, посвященный основам создания новостей на веб-сайте с php.

Самый простой способ сделать это – прочитать временную шкалу Facebook RSS:

 function FacebookFeed($pagename, $count, $postlength) { $pageID = file_get_contents('https://graph.facebook.com/?ids='.$pagename.'&fields=id'); $pageID = json_decode($pageID,true); $pageID = $pageID[$pagename]['id']; ini_set('user_agent', 'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.9) Gecko/20071025 Firefox/2.0.0.9'); $rssUrl = 'http://www.facebook.com/feeds/page.php?format=rss20&id='.$pageID; $xml = simplexml_load_file($rssUrl); $entry = $xml->channel->item; for ($i = 0; $i < $count; $i++) { $description_original = $entry[$i]->description; $description_striphtml = strip_tags($description_original); $description = substr($description_striphtml, 0, $postlength); $link = $entry[$i]->link; $date_original = $entry[$i]->pubDate; $date = date('dmY, H:i', strtotime($date_original)); $FB_feed .= $description."&hellip;<br>"; $FB_feed .= "<small><a href='".$link."'>".$date."</a></small><br><br>"; } return $FB_feed; } 

Да, это может быть сделано. Сначала зарегистрируйте веб-сайт на странице разработчика facebook. Чем вы можете использовать любой подходящий API для взаимодействия с FB. Иногда я использовал SpringSocial (так как я работал с Spring весно) … Вы можете использовать собственный api FB, который также очень полезен, вы можете прочитать учебник здесь

Это определенно можно сделать. Вам просто нужно получить токен доступа через facebook, а затем вы можете получить доступ к фидам сообщений JSON через API facebook.

Вам нужно перейти на сайт разработчика facebook и нажать «Приложения» вверху. Выполните шаги, чтобы получить секрет приложения и идентификатор клиента. Затем просто поместите их в следующий URL-адрес, и он вернет токен доступа:

https://graph.facebook.com/oauth/access_token?grant_type=client_credentials&client_id=YOUR_CLIENT_ID&client_secret=YOUR_CLIENT_SECRET

Пошаговые инструкции здесь: http://smashballoon.com/custom-facebook-feed/access-token/

В этом документе описываются шаги для получения токенов доступа к facebook и использования токенов для извлечения фидов FB.

Пример: живой пример доступен в

https://newtonjoshua.com

Введение в Graph API: API-интерфейс Graph является основным способом получения данных на платформе Facebook и выхода из нее. Это низкоуровневый HTTP-интерфейс, который вы можете использовать для запроса данных, публикации новых историй, управления рекламой, загрузки фотографий и множества других задач, которые могут потребоваться приложениям.

Приложения для FaceBook:

https://developers.facebook.com

Создайте приложение для Facebook. Вы получите App_Id и App_Secret

Graph API Explorer:

https://developers.facebook.com/tools/explorer/ {{App_Id}} /?method=GET&path=me%2Ffeed&version=v2.8

Вы получите access_token который недолговечен. Итак, это будет наш short_lived_access_token .

примечание: при создании токена доступа выберите все поля fb, которые вам нужны. Это даст разрешение маркер доступа для получения этих полей.

Расширение Token Access:

https://graph.facebook.com/oauth/access_token?grant_type=fb_exchange_token&client_id= {{App_Id}} & client_secret = {{App_Secret}} & fb_exchange_token = {{short-alive-access_token}}

Вы получите access_token со сроком действия 2 месяца.

Отладчик токена доступа:

https://developers.facebook.com/tools/debug/accesstoken?q= {{access_token}} & version = v2.8

вы можете проверить информацию о access_token .

Facebook SDK для JavaScript: включите JavaScript в JavaScript для асинхронной загрузки SDK на свою страницу

  (function (d, s, id) { var js, fjs = d.getElementsByTagName(s)[0]; if (d.getElementById(id)) { return; } js = d.createElement(s); js.id = id; js.src = "//connect.facebook.net/en_US/sdk.js"; fjs.parentNode.insertBefore(js, fjs); }(document, 'script', 'facebook-jssdk')); 

API-диаграмма. Давайте сделаем вызов API, чтобы получить наш идентификатор FB, профиль pic, обложку pic и каналы.

 window.fbAsyncInit = function () { FB.init({ appId: '{{App_Id }}', xfbml: true, version: 'v2.7' }); FB.api( '/me', 'GET', { fields: 'id,picture{url},cover,feed', access_token: {{access_token}} }, function (response) { if (response.error) { console.error(response.error.message); } if (response.picture.data.url) { profilePic = response.picture.data.url; } if (response.cover.source) { coverPic = response.cover.source; } if (response.feed.data) { feeds = response.feed.data; feeds.forEach(function (feed) { // view each feed content }); } if (response.feed.paging.next) { nextFeedPage = response.feed.paging.next; // a request to nextFeedPage will give the next set of feeds } } ); }; 

Используйте API-интерфейс Graph API для разработки вашего запроса, который должен быть введен в «поля» (например: «id, picture {url}, cover, feed»)

Теперь вы можете получить свои данные в Facebook из Facebook Graph API, используя ваш access_token.

См. https://developers.facebook.com/docs/graph-api/overview/

Примечание. access_token действия вашего access_token через 2 месяца. После этого создайте новый access_token.