Подтвердить что ты не робот

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

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

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

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

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

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

4b9b3361

Ответ 1

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

The Like Box позволяет пользователям:

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

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

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

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

или

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

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

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

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

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

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

Удачи.

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

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

Ответ 2

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

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

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

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

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

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

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

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

Здесь - это учебное пособие, в котором рассказывается об основах создания новостей на веб-сайте с помощью php.

Ответ 3

Самый простой способ сделать это - прочитать временную шкалу 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('d-m-Y, H:i', strtotime($date_original));

$FB_feed .= $description."&hellip;<br>";
$FB_feed .= "<small><a href='".$link."'>".$date."</a></small><br><br>";
}

return $FB_feed;
}

Ответ 4

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

Ответ 5

Это определенно можно сделать. Вам просто нужно получить токен доступа через 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/

Ответ 6

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

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

https://newtonjoshua.com

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

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

https://developers.facebook.com

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

Графический API-интерфейс API:

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

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

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

Расширение токена доступа:

https://graph.facebook.com/oauth/access_token?grant_type=fb_exchange_token&client_id= {{App_Id}} & client_secret = {{App_Secret}} & fb_exchange_token = {{недолговечны-access_token}}

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

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

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

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

Facebook SDK для JavaScript: Включите приведенный ниже JavaScript в свой HTML для асинхронной загрузки 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'));

Graph 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-интерфейс API-интерфейса диаграммы для разработки вашего запроса, который должен быть введен в "поля" (например: "id, picture {url}, cover, feed" )

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

Обратитесь к https://developers.facebook.com/docs/graph-api/overview/

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