我正在开发一个项目,该项目需要抓取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()
表示没有为性别提取任何内容,这使我认为这不是我的代码的问题,更可能是配置问题。
我不确定这个过程中出现了什么问题,但任何指向调试的指针都会非常感激。
答案 0 :(得分:0)
答案在评论中发布,以供参考。
您使用GraphQL Explorer定位哪个Graph API?最近的V3?您的软件包的目标是V2.10,这可能会导致一些问题。
另请注意,该软件包近一年未收到更新,因此也可能是罪魁祸首。