PHP Facebook GET 请求 - 性别缺失
PHP Facebook GET Request - Gender Missing
我正在开展一个项目,该项目需要获取由 'user_gender' 范围提供的 Facebook 用户性别。目前仍在生产中,我正在使用测试用户并且在获取性别方面遇到了问题。
我创建的测试用户 100% 具有 'user_gender' 范围,这反映在 Facebook 自己的 GraphQL Explorer 中,向我显示我需要的数据,包括性别。下面是返回的 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 代码中使用的访问令牌完全相同。相同的权限,相同的用户。如您所见,除了性别外,其他都显示正确。
我试图转储 'gender' 字段,但没有显示任何内容。这样做 $response->getGraphUser()->all()
表明没有针对性别提取任何内容,这让我认为这不是我的代码问题,更可能是配置问题。
我不确定在这个过程中到底哪里出错了,但是任何调试的指针都将不胜感激。
答案在评论里,贴出来供参考
您使用 GraphQL Explorer 的目标是哪个图 API?最近的V3?您的软件包面向 V2.10,这可能会导致一些问题。
另请注意,该软件包已将近一年未收到更新,所以这也是罪魁祸首。
我正在开展一个项目,该项目需要获取由 'user_gender' 范围提供的 Facebook 用户性别。目前仍在生产中,我正在使用测试用户并且在获取性别方面遇到了问题。
我创建的测试用户 100% 具有 'user_gender' 范围,这反映在 Facebook 自己的 GraphQL Explorer 中,向我显示我需要的数据,包括性别。下面是返回的 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 代码中使用的访问令牌完全相同。相同的权限,相同的用户。如您所见,除了性别外,其他都显示正确。
我试图转储 'gender' 字段,但没有显示任何内容。这样做 $response->getGraphUser()->all()
表明没有针对性别提取任何内容,这让我认为这不是我的代码问题,更可能是配置问题。
我不确定在这个过程中到底哪里出错了,但是任何调试的指针都将不胜感激。
答案在评论里,贴出来供参考
您使用 GraphQL Explorer 的目标是哪个图 API?最近的V3?您的软件包面向 V2.10,这可能会导致一些问题。
另请注意,该软件包已将近一年未收到更新,所以这也是罪魁祸首。