3

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

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

4

2 回答 2

9

有同样的问题。您实际上不需要用户访问令牌,只需确保在您的 Facebook 应用程序设置(在高级选项卡下)禁用“本机或桌面应用程序?” 环境。

于 2014-07-24T09:11:57.347 回答
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

于 2013-06-08T05:11:48.233 回答