我想通过Facebook API在我的网站上显示我的公共粉丝专页,无需登录。
我正在做这个
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
然后我想,因为'需要'用户ID参数或会话密钥',才能将我的用户ID添加到呼叫中
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'
我完全无能道:)
答案 0 :(得分:3)
这就是我做的事情
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);
所以,基本上,这会从您的“视角”获取Feed,但只过滤它以显示指定粉丝页面中的项目。
免责声明:这有效,但我不确定这是否是一种“支持”的方法来获取数据,甚至根本不允许这样做。
参考文献:
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/
答案 1 :(得分:0)
好的,我尝试了很多次,但是当我将QUOTES添加到代码中时它就有用了。
$infinite_key = $facebook->api_client->auth_getSession('YOUR_KEY_CODE');
感谢您的建议!
答案 2 :(得分:0)
您需要在代码中使用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);
?>