【发布时间】:2011-10-19 19:33:08
【问题描述】:
我正在从 2.x PHP SDK 迁移到 3.x。所有的多查询调用都被破坏了,我无法弄清楚如何解决。
使用 oauth javascript 的 facebook 连接登录可以工作,并允许在服务器端访问当前用户的数据。我假设这可以验证我的访问令牌是合法的。
我尝试了以下代码变体,但每次都会出错:
老办法:
$id = $fb->getUser(); // RETURNS A VALID USER ID
$fql = '{ "friends" : "SELECT uid FROM user WHERE has_added_app=1 and uid IN (SELECT uid2 FROM friend WHERE uid1 = '.$id.')", "profiles" : "SELECT uid, name, pic_square FROM user WHERE uid IN (SELECT uid FROM #friends)"}';
$response = $fb->api( array('method' => 'fql.multiquery','queries' => $fql));
给出错误:PHP 致命错误:未捕获异常:102:需要用户会话\n 抛出
假设的新方法:
$id = $fb->getUser(); // RETURNS A VALID USER ID
$fql = '{ "friends" : "SELECT uid FROM user WHERE has_added_app=1 and uid IN (SELECT uid2 FROM friend WHERE uid1 = '.$id.')", "profiles" : "SELECT uid, name, pic_square FROM user WHERE uid IN (SELECT uid FROM #friends)"}';
$response = $fb->api( array('method' => 'fql.query','query' => $fql));
给出错误:PHP 致命错误:未捕获异常:601:解析器错误:位置 0 处出现意外“{”
感谢任何帮助了解如何使用新的 PHP SDK 进行多查询。
【问题讨论】:
标签: php facebook facebook-graph-api facebook-fql facebook-php-sdk