使用应用程序访问令牌通过FQL获取好友

3

我正在尝试使用Facebook查询语言(FQL)获取已安装我的应用程序的好友列表。在验证了我的应用程序并获取了应用程序访问令牌之后,我执行以下查询(请注意,我正在使用Java和RestFB运行):

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

这将返回使用应用访问令牌的好友列表。
这引出了我的问题。为什么我无法使用应用访问令牌来获取好友列表,但可以使用Graph API检索好友?
提前感谢,
Ben
2个回答

2

首先,我想提醒您fql.query来自REST API,将被弃用。

Facebook建议使用GRAPH API

重要提示:FQL不会被弃用,只有使用REST API的fql.query方法将被弃用。

因此,您可以继续使用FQL,并使用GRAPH API执行FQL。

了解更多信息,请参阅http://developers.facebook.com/docs/reference/fql/

在Facebook中的示例代码

 //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 变化保持一致。


谢谢你的建议。我已经更新了我的问题,使用了图形API中的FQL。但是仍然遇到了相同的错误 :( - Ben Sion

0
当我在我的FQL查询中使用应用程序令牌时,我会收到以下响应:
“message”:“需要用户访问令牌才能请求此资源。”
看起来你应该尝试使用用户访问令牌。事实上,当我从我的应用程序令牌切换到测试用户授权令牌时,它可以工作。 :-/

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