2012-03-12 2 views
3

У меня есть сайт facebook (сайт, а не стена профиля) и вы хотите отобразить канал сообщения на веб-странице. Это уже отлично работает, если я используюКак показывать сообщения в facebook с моего сайта без access_token?

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

Но для этого мне нужен access_token. Используя Graph Explorer, я могу создать временный токен.

Я знаю, что могу создать OAuth, но я не хочу, чтобы каждый посетитель моей веб-страницы входил в facebook, чтобы увидеть каналы. Должен быть другой способ ... Возможно, используя PHP вместо Javascript?

ответ

1

Я не думаю, что вы можете сделать это без токена доступа, но проверьте мой ответ here за подробные инструкции по его получению и извлечению нужного канала.

4

https://developers.facebook.com/docs/plugins/ содержит список всех плагинов, которые вы можете вставлять. Однако это не работает, если вы хотите отображать фид для пользователей, не входящих в систему.

Чтобы решить вашу проблему, используйте скрипт на стороне сервера, который обращается к этому каналу и отображает его. Если этот канал находится на странице FB, вам понадобится токен доступа с разрешениями «manage_pages». С помощью этого, вы можете получить содержимое с помощью следующей (PHP) код:

$response=file_get_contents("https://graph.facebook.com/".$id."/feed&access_token=".$facebook_access_token); 
$response_array=json_decode($response,true); 
// $id: Page ID 

Вы также можете настроить этот запрос, добавив параметры разбивки на страницы, как с тех пор, предел, до и т.д. Пожалуйста, обратитесь к https://developers.facebook.com/docs/reference/api/ документации.

Этот подход позволяет Вам следующие преимущества:

  • Ваш Токен доступа безопасен на вашем сервере и не видна общественности.
  • Ваш фид можно увидеть даже без входа пользователя.
  • Вы можете настроить внешний вид вашего фида, так как вы управляете пользовательским интерфейсом.

Недостатки:

  • Потребности вы закодировать и активно поддерживать кусок кода, который не делает ничего, кроме акта как прокси-сервер. Каждый раз, когда FB изменяет структуру своего объекта, вам нужно будет изменить этот код.
+0

Если у вас есть только одна или две страницы и вы хотите быстро их настроить, вы можете просто перейти к Graph API Explorer (https://developers.facebook.com/tools/explorer) и создать один из них. Если вы не хотите использовать это, вам нужно приложение, которое получит его от пользователя, использующего FB.login (https://developers.facebook.com/docs/reference/javascript/FB.login/) или некоторые такие Механизм FB-аутентификации. – Shreeni

+1

Спасибо. Я уже пробовал API-интерфейс Graph API, но токен, который я туда получаю, является временным: «Ошибка проверки маркера доступа: сеанс истек в unix time ...». Мне нужно долгое время ... – PiTheNumber

3

Вы можете использовать https://www.facebook.com/feeds/page.php?id=<your-page-id>&format=json Это возвращает объект json и не требует токена доступа.

Вы также можете использовать различные форматы, такие как xml и rss20.

Надеюсь, это поможет.

+0

Это замечательно! У вас есть документация по этому API? – PiTheNumber

1

делает это в окнах 8 магазин приложений, это похоже на работу

URL = "https://graph.facebook.com/me?fields=feed&access_token=" + fbtoken;

+0

Это то же самое, что и [Shreeni] (http://stackoverflow.com/a/9663836/956397), и он хорошо работает, если вы получаете [токен доступа] (https://developers.facebook.com/docs/ ссылка/api/page/# page_access_tokens), но [Nick Lucas] (http://stackoverflow.com/a/16330887/956397) лучше, потому что он работает без токена. +1 +1 за ваши усилия и добро пожаловать в Stackoverflow :) – PiTheNumber

2

Хотя этот вопрос уже был дан. Надеюсь, это поможет кому-то другому.

Я разрабатываю плагин для внутренней CMS, который должен был вытащить фидбук прямо из JUST URL-адреса пользователей. Это то, чем я закончил.

$url = 'url_pulled_from_database'; 
$url = str_replace('http://www.', 'http://graph.', $url); 
$get_id = file_get_contents($url); 
$get_id = json_decode($get_id, true); 
$fbID = $get_id['id']; 

//THEN CALL THE FUNCTION   
fb_parse_feed($fbID, $maxnumber); 

Я не могу взять кредит на функции fb_parse_feed, но вы можете найти его здесь https://gist.github.com/banago/3864515

После внедрения, он работал как шарм на любой публичной странице только с помощью URL.

+0

Это было бы очень полезно для меня. Можете ли вы показать пример того, как использовать это на общедоступной странице. Скажите для этой страницы? https://www.facebook.com/JulianEdelman в качестве примера – MicFin

Смежные вопросы