我正在使用Phalcon Framwework和Facebook PHPSDK v2编写的iPhone App API。所有身份验证都在客户端上完成,一旦服务器验证了fb访问令牌,就会在客户端和服务器之间建立单独的HMAC身份验证。 我的最终目标是返回朋友ID,姓名和个人资料图片网址的列表,他们已授权应用给定新用户用户fbid或acccess令牌。我已经使用此库将SDK包含在我的Phalcon应用程序https://github.com/geass/Phalcon-Facebook-Library
中我已经搜索了SO以获得anwer并尝试了一些图形请求,但它们似乎没有用。
我在图API探测器中使用了以下很容易找到的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或Access令牌或两者同时获取此信息?
感谢。
答案 0 :(得分:0)
我找到的解决方案是花时间让FBSDK在Phalcon中正常运行,然后使用图形请求(它巧妙地处理了我在file_get_contents()中使用HTTPS时遇到的很多问题)。然后Somenone指出FB API文档我说你可以在GET图形请求的末尾添加访问令牌。
在我的脸书库文件中:
function getFriendsUsingAppIds($fbId, $accessToken){
return $this->_facebook->api("$fbId/friends?fields=installed&access_token==$accessToken");
}
这给了
[0] => Array
(
[id] => 305232
)
[1] => Array
(
[id] => 305391
)
[633] => Array
(
[installed] => 1
[id] => 100005007310527
)
我最初完全错过了第633行,并假设我只是得到了所有朋友的列表。
然后我删除了没有使用简单foreach安装set的行。