与Facebook Graph API相关的问题

时间:2013-06-08 04:56:13

标签: php facebook facebook-graph-api

实际上我正在使用该代码获取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

请为我提供上述定义问题的任何解决方案。

2 个答案:

答案 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