У меня есть клиент, который хочет, чтобы их новостная лента / график времени для своей компании отображались на их веб-сайте. Это не личный график / новостная лента, а организация.
Все, что я читал, кажется, несколько лет, но, похоже, результат: 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."…<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-адрес, и он вернет токен доступа:
Пошаговые инструкции здесь: http://smashballoon.com/custom-facebook-feed/access-token/
В этом документе описываются шаги для получения токенов доступа к facebook и использования токенов для извлечения фидов FB.
Пример: живой пример доступен в
Введение в Graph API: API-интерфейс Graph является основным способом получения данных на платформе Facebook и выхода из нее. Это низкоуровневый HTTP-интерфейс, который вы можете использовать для запроса данных, публикации новых историй, управления рекламой, загрузки фотографий и множества других задач, которые могут потребоваться приложениям.
Приложения для FaceBook:
Создайте приложение для 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.