实际上我正在使用该代码获取facebook发布数据。
Facebook::$CURL_OPTS[CURLOPT_SSL_VERIFYPEER] = false;
Facebook::$CURL_OPTS[CURLOPT_SSL_VERIFYHOST] = 2;
$facebook = new Facebook(array('appId' => 'xxxxxxxxxxx', 'secret' => 'xxxxxxxxxxx....xxxxxxx', 'scope' => 'manage_pages,offline_access,publish_stream,user_photos'));
$result = $facebook->api('/'.$rssfeed_id,'get');
上面的代码给出了一些错误,如: -
Fatal error: Uncaught OAuthException: (#15) Requires session when calling from a desktop app thrown in C:\Program Files\EasyPHP-5.3.5.0\www\sportsflow\sportsflow_v30\lib\base_facebook.php on line 1271
请为我提供上述定义问题的任何解决方案。
答案 0 :(得分:8)
有同样的问题。您实际上不需要用户访问令牌,只需确保在您的Facebook应用程序设置(在高级选项卡下)禁用“本机或桌面应用程序?”设置。
答案 1 :(得分:2)
您需要用户进行连接才能授予他权限。
Facebook()
构造函数只接受应用ID和密钥:
$facebook = new Facebook(array(
'appId' => 'xxxxxxxxxxx',
'secret' => 'xxxxxxxxxxx....xxxxxxx'));
应将权限添加到LoginUrl:
$loginurl = $facebook->getLoginUrl(array(
'scope' => 'manage_pages,offline_access,publish_stream,user_photos'));
用户点击登录URL后,您可以使用$ facebook实例获取用户会话:
$user = $facebook->getUser();
如果用户确实存在,您最终可以提出所需的API请求:
$result = $facebook->api('/'.$rssfeed_id, 'get');
请按照以下完整示例:https://github.com/facebook/facebook-php-sdk/blob/master/examples/example.php