使用FQL与应用程序的访问令牌
我试图使用Facebook查询语言(FQL)得到的朋友,谁已经安装了我的应用程序列表中获取的朋友。验证我的应用程序,并让我的应用程序的访问令牌后,我执行下面的查询(请注意我用的Java和RestFB运行):使用FQL与应用程序的访问令牌
https://api-read.facebook.com/method/fql.query?query=SELECT+uid+FROM+user+WHERE+uid+IN+%28SELECT+uid2+FROM+friend+WHERE+uid1%3D<userId>%29+AND+is_app_user%3D1&access_token=<appAccessToken>&format=json
这将返回一个错误:
..."error_code":102,"error_msg":"Requires user session"
同样,如果我尝试使用图形API的FQL(如下所示),我得到相同的错误。
https://graph.facebook.com/fql?q=SELECT+uid+FROM+user+WHERE+uid+IN+%28SELECT+uid2+FROM+friend+WHERE+uid1%3D<userId>%29+AND+is_app_user%3D1&access_token=<appAccessToken>&format=json
所以我试图用一种预期它的工作原理令牌的用户访问。我寻觅了公平位和跨越这来了: Facebook 'Friends.getAppUsers' using Graph API
其中有一些非常好的建议,领着我去尝试以下查询:
https://graph.facebook.com/<userId>/friends?fields=installed&access_token=<appAccessToken>&format=json
而这个返回的好友列表与应用程序的访问令牌。
这使我对我的问题。为什么我无法使用与FQL应用程序访问令牌来获取好友列表,但我可以用图形API获取朋友?
由于提前,
本
首先,我想提请到您的通知,fql.query是REST API和将被弃用。
FB推荐使用图形API前进..
重要提示:FQL是不会被弃用,但只使用REST API的fql.query方法将被弃用。
所以你可以继续使用FQL和使用图形API执行FQL。
详情请阅读http://developers.facebook.com/docs/reference/fql/
示例代码FB
//get user access_token
$token_url = 'https://graph.facebook.com/oauth/access_token?client_id='
. $app_id . '&redirect_uri=' . urlencode($my_url)
. '&client_secret=' . $app_secret
. '&code=' . $code;
$access_token = file_get_contents($token_url);
// Run fql query
$fql_query_url = 'https://graph.facebook.com/'
. '/fql?q=SELECT+uid2+FROM+friend+WHERE+uid1=me()'
. '&' . $access_token;
$fql_query_result = file_get_contents($fql_query_url);
$fql_query_obj = json_decode($fql_query_result, true);
//display results of fql query
echo '<pre>';
print_r("query results:");
print_r($fql_query_obj);
echo '</pre>';
我知道,我并没有真正回答你的问题,但是这仅仅是一个信息的收集关于哪些可以用来准备着与FB更改保持一致。
当我使用一个应用程序令牌与我的FQL查询,我得到如下回应:
"message": "A user access token is required to request this resource."
看起来你应该尝试使用用户访问令牌。事实上,当我从我的应用程序令牌来测试用户身份验证令牌切换,它的工作原理。 : -/
谢谢你的提示。我更新了我的问题,在图API中使用FQL。仍然得到相同的错误,虽然:( – 2012-03-19 01:59:02