与Facebook Graph API相关的问题

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

请给我提供任何关于以上定义问题的解决方案。

首先,我希望你的应用程序ID密钥中的x所在的位置是你代码中的实际数字。 - zazvorniki
是的,我知道我使用的x实际上是应用程序ID和密钥。谢谢你的建议 :) 如果您有其他想法,请告诉我。 - Er Sharad Soni
好的!必须确认一下! :) 如果我正确理解你的错误,那么看起来Facebook希望你创建一个会话来存储这些数据。 - zazvorniki
是的,我也这么想,但我不知道怎么做? :) - Er Sharad Soni
2个回答

9

我遇到了同样的问题。实际上,你不需要用户访问令牌,只需确保在你的Facebook应用程序设置中(在高级选项卡下)禁用“本地或桌面应用程序?”设置。


如果你的应用程序不是“本地或桌面”应用,那么它肯定是合法的。 - Karolis.sh
这是解决方案,特别适用于PhoneGap/Cordova应用程序。 - edur

2

您需要一个用户连接才能为他授予权限。

Facebook() 构造函数只接受应用程序 ID 和密钥:

$facebook = new Facebook(array(
                     'appId'  => 'xxxxxxxxxxx', 
                     'secret' => 'xxxxxxxxxxx....xxxxxxx'));

权限应该添加到登录URL中:

$loginurl = $facebook->getLoginUrl(array(
        'scope'  => 'manage_pages,offline_access,publish_stream,user_photos'));

一旦用户点击登录链接,您可以使用$facebook实例获取用户会话:

$user = $facebook->getUser();

如果用户确实存在,您最终可以发出所需的API请求:
$result = $facebook->api('/'.$rssfeed_id, 'get');

请按照以下完整示例操作:https://github.com/facebook/facebook-php-sdk/blob/master/examples/example.php


谢谢您的回答!但是当我使用您定义的代码时,它仍然显示相同的致命错误。您还有其他解决方案吗? - Er Sharad Soni
1
你是否尝试从Github运行完整的示例?你能否发起一个简单的请求,例如 $facebook->api('/me','GET');?你的代码中的 $rssfeed_id 是什么?请确保这是一个有效的id。我需要更多信息。如果需要,请编辑您的初始帖子。 - Stéphane Bruckert
不,我没有运行完整的示例。我只使用了你的代码,在我的代码中我们使用"$rssfeed_id"作为帖子ID。 - Er Sharad Soni
我有一个帖子ID的例子是“19292868552_10150189643478553”。你能否在你的代码中检查这个特定的帖子ID吗? - Er Sharad Soni
我的代码还不完整,它只是解释了逻辑。你需要从示例开始,因为它提供了重要的登录和注销功能。只是不要忘记在登录URL中添加范围并更改API请求。顺便说一句,你的POST ID没问题。 - Stéphane Bruckert
显示剩余3条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接