Как получить поток публичной фан-страницы Facebook в php? - PullRequest
2 голосов
/ 11 января 2010

Я хочу отображать мою общедоступную ленту фан-страниц на своем веб-сайте через API Facebook, не требуя входа в систему.

Я делаю это

require_once('../includes/classes/facebook-platform/php/facebook.php');

$fb = new Facebook($api_key, $secret);
$fb->api_client->stream_get('',$app_id,'0','0','','','','',''));

Но я получаю эту ошибку

 Fatal error:  Uncaught exception 'FacebookRestClientException' with message 'user id parameter or session key required' in includes/classes/facebook-platform/php/facebookapi_php5_restlib.php:3065
 Stack trace:
#0 includes/classes/facebook-platform/php/facebookapi_php5_restlib.php(1915): FacebookRestClient->call_method('facebook.stream...', Array)
#1 facebook/api.php(12): FacebookRestClient->stream_get('', 13156929019, '0', '0', 30, '', '', '', '')
#2 {main}
  thrown in includes/classes/facebook-platform/php/facebookapi_php5_restlib.php on line 3065

Затем я решил, что из-за «параметра идентификатора пользователя или ключа сеанса» добавить свой идентификатор пользователя в вызов

require_once('../includes/classes/facebook-platform/php/facebook.php');

$fb = new Facebook($api_key, $secret);
$fb->api_client->stream_get(502945616,13156929019,$app_id,'0','0','','','','',''));

Но тогда я получил эту ошибку

Fatal error:  Uncaught exception 'FacebookRestClientException' with message 'Session key invalid or no longer valid'

Я совершенно невежественен:)

Ответы [ 3 ]

3 голосов
/ 11 января 2010

Вот что я сделал

1) Войдите на Facebook.

2) Предоставьте приложению автономный доступ к своей учетной записи: http://m.facebook.com/authorize.php?api_key=YOUR_API_KEY&v=1.0&ext_perm=offline_access

3) Добавить разрешение на чтение потока http://m.facebook.com/authorize.php?api_key=YOUR_API_KEY&v=1.0&ext_perm=read_stream

4) Генерация кода ключа http://www.facebook.com/code_gen.php?v=1.0&api_key=YOUR_API_KEY

5) Запустите этот скрипт один раз и скопируйте «session_key».

$facebook = new Facebook($api_key, $api_secret);
$infinite_key = $facebook->api_client->auth_getSession(YOUR_KEY_CODE);
print_r($infinite_key);

6) Подключи и играй!

$facebook->api_client->user = YOUR_FACEBOOK_USER_ID
$facebook->api_client->session_key = YOUR_INFINITE_KEY
$facebook->api_client->expires = 0;
$feed = $facebook->api_client->stream_get(YOUR_FACEBOOK_USER_ID, FAN_PAGE_ID);

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

Отказ от ответственности: это работает, но я не уверен, является ли это «поддерживаемым» методом для сбора данных или вообще разрешен.

Ссылки:

http://www.emcro.com/blog/2009/01/facebook-infinite-session-keys-no-more/

http://blog.jylin.com/2009/10/01/loading-wall-posts-using-facebookstream_get/

0 голосов
/ 05 мая 2013

Вам нужна библиотека Facebook в вашем коде, и лучше сказать, что APP_ID не API_KEY.

<?php 
require_once('facebook.php'); 
$facebook = new Facebook('YOUR_APP_ID', 'YOUR_APP_SECRET'); 
$infinite_key = $facebook->api_client->auth_getSession('YOUR_KEY_CODE');
print_r($infinite_key); 
?>
0 голосов
/ 14 апреля 2010

Хорошо, я пробовал много раз, но это сработало, когда я добавил в код цитаты.

$infinite_key = $facebook->api_client->auth_getSession('YOUR_KEY_CODE');

Спасибо за предложение!

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