【发布时间】:2014-05-15 11:37:25
【问题描述】:
我正在开发一个使用 Phalcon Framwework 和 Facebook PHPSDK v2 编写的 iPhone App API。所有的身份验证都是在客户端上完成的,一旦服务器验证了 fb 访问令牌,就会在客户端和服务器之间设置一个单独的 HMAC 身份验证。 我的最终目标是返回朋友 id、姓名和个人资料图片 url 的列表,他们已经授权了一个应用程序,给了一个新用户用户 fbid 或访问令牌。我已经使用这个库将 SDK 包含在我的 Phalcon 应用程序 https://github.com/geass/Phalcon-Facebook-Library 中
我已经搜索了一个答案并尝试了一些图形请求,但它们似乎不起作用。
我使用了以下在图形 API 资源管理器中的 SO 上很容易找到的 FQL:
SELECT uid, name FROM user WHERE uid IN(SELECT uid2 FROM friend WHERE uid1 = 123456) AND is_app_user = 1
如果访问令牌有效,这似乎可行。
当我尝试在 SKD 中使用相同的 FQL 时,我不确定如何应用访问令牌,只需这样做:
function getFriendsUsingApp($fbId){
$params = array(
'method' => 'fql.query',
//'query' => "select pic_square from user where uid=$fbId",
'query' => "SELECT uid, name FROM user WHERE uid IN(SELECT uid2 FROM friend WHERE uid1 = $fbId) AND is_app_user = 1",
);
$result = $this->_facebook->api($params);
return($result);
}
这会导致以下错误:
致命错误:未捕获的异常:102:需要用户会话 投入 D:\library\Social\sdk\base_facebook.php 上线 1271
如果给定 fb id 或访问令牌或两者兼有,我如何获取此信息?
谢谢。
【问题讨论】:
-
您确定您的访问令牌已创建且有效吗?得到它,并在developers.facebook.com/tools/debug中调试它
-
是的,我从应用程序上的测试用户那里获取了令牌,当我在调试器中尝试 FQL 时,我得到了很好的结果
-
不要忘记会话过期。您是否在 Facebook Debug 中使用该访问令牌后立即使用它?
标签: php api facebook-fql facebook-php-sdk phalcon