context.fields(all_mutual_friend) 返回不支持的获取请求

Posted

技术标签:

【中文标题】context.fields(all_mutual_friend) 返回不支持的获取请求【英文标题】:context.fields(all_mutual_friend) returns Unsupported get request 【发布时间】:2016-03-17 08:08:36 【问题描述】:

我正在尝试获取我和其他(不是我的朋友)用户之间的所有共同朋友。

为此,我使用连接 graph.facebook.com(REST 客户端)的 php 服务器

我正在使用仪表板中的 AppSecret 我正在发送有效的 access_token(具有 user_friends 权限) 我正在发送有效的 appsecret_proof(使用文档中提到的方法创建):

$appsecret_proof = hash_hmac('sha256', $access_token, $secret);

如果我更改 appsecret_proof,我会收到“API 参数中提供的 appsecret_proof 无效”,所以我认为它是正确且有效的。

我总是检索相同的响应:

 "error": 
       "message": "Unsupported get request. Please read the Graph API documentation at https://developers.facebook.com/docs/graph-api",
        "type": "GraphMethodException",
        "code": 100,
        "fbtrace_id": "XXXXXXXXXXX"
      

这是我的代码:

$appsecret_proof = hash_hmac('sha256', $access_token, $secret);

$url =  '/v2.5/'.$userID.'?fields=context.fields(all_mutual_friends)&appsecret_proof='.$appsecret_proof.'&access_token='.$access_token ;

$config = array('server'=> 'https://graph.facebook.com');
$this->CI->rest->initialize($config);
$result = $this->CI->rest->get($url);

如何找回我们共同的朋友?

【问题讨论】:

我收到了同样的错误信息,但它只发生在我在真正的 facebook 用户和 facebook 测试用户之间进行查询时。对于真正的 fb 用户与 fb_user,或测试用户与测试用户,它们都很好。您已经找到解决方案了吗? 【参考方案1】:

根据documentation,它应该是mutual_friends,而不是all_mutual_friends

示例代码为:

$request = new FacebookRequest(
  $session,
  'GET',
  '/user-id',
  array (
    'fields' => 'context.fields(mutual_friends)',
  )
);
$response = $request->execute();
$graphObject = $response->getGraphObject();

【讨论】:

我用它来获取观众和目标人共有的所有朋友。这包括不使用我的应用程序的朋友。 Documentation

以上是关于context.fields(all_mutual_friend) 返回不支持的获取请求的主要内容,如果未能解决你的问题,请参考以下文章

Facebook App 提交审核 : 共同好友权限

Postgres:使用 django 对 json 键进行值查询