PHP Facebook获取请求 - 性别缺失

时间:2018-06-07 10:01:19

标签: php laravel facebook-graph-api facebook-php-sdk

我正在开发一个项目,该项目需要抓取Facebook用户的性别,由“用户生成器”'提供。范围。目前仍在制作中,我正在使用测试用户,并且在获得性别方面遇到了问题。

我创建的测试用户100%拥有' user_gender'范围反映在Facebook自己的GraphQL资源管理器中,向我展示我需要的数据,包括性别。返回的JSON转储如下。

Request: /me?fields=first_name,last_name,email,gender
{
  "first_name": "Ullrich",
  "last_name": "Brownman",
  "email": "hhstlboyia_1528304269@tfbnw.net",
  "gender": "male",
  "id": "109073989989984"
}

到目前为止,这么好。当我试图从PHP SDK中获取性别时,我的问题就出现了,更具体地说是LaravelFacebookSdk(https://github.com/SammyK/LaravelFacebookSdk)。

以下是一些代码摘录。

$response = $fb->get('/me?fields=first_name,last_name,email,gender', $userCredentials['access_token']);

return response()->json([
      'first_name' => $response->getGraphUser()->getFirstName(),
      'last_name' => $response->getGraphUser()->getLastName(),
      'email' => $response->getGraphUser()->getEmail(),
      'fb_id' => $response->getGraphUser()->getId(),
      'gender' => $response->getGraphUser()->getGender()
    ], StatusCode::OK);

这是返回的JSON的样子:

{
    "first_name": "Ullrich",
    "last_name": "Brownman",
    "email": "hhstlboyia_1528304269@tfbnw.net",
    "fb_id": "109073989989984",
    "gender": null
}

为了确认,我在资源管理器和PHP代码中使用的访问令牌完全相同。相同的权限,相同的用户。正如您所看到的,除了性别外,其他所有内容都会显示并且正确无误。

我试图抛弃性别'字段,不显示任何内容。执行此操作$response->getGraphUser()->all()表示没有为性别提取任何内容,这使我认为这不是我的代码的问题,更可能是配置问题。

我不确定这个过程中出现了什么问题,但任何指向调试的指针都会非常感激。

1 个答案:

答案 0 :(得分:0)

答案在评论中发布,以供参考。

您使用GraphQL Explorer定位哪个Graph API?最近的V3?您的软件包的目标是V2.10,这可能会导致一些问题。

另请注意,该软件包近一年未收到更新,因此也可能是罪魁祸首。