【问题标题】:PHP Facebook GET Request - Gender MissingPHP Facebook GET 请求 - 性别缺失
【发布时间】:2018-06-07 10:01:18
【问题描述】:

我正在开展一个项目,该项目需要获取由“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 代码中使用的访问令牌完全相同。相同的权限,相同的用户。如您所见,除了性别之外的所有内容都显示并正确。

我尝试转储“性别”字段,但没有显示任何内容。这样做$response->getGraphUser()->all() 表明没有为性别而拉任何东西,这让我认为这不是我的代码问题,更可能是配置问题。

我不确定在这个过程中到底哪里出了问题,但任何调试指针都将不胜感激。

【问题讨论】:

  • 您使用 GraphQL Explorer 以哪个 Graph API 为目标? V3?由于您的软件包针对 V2.10。另请注意,该软件包已近一年没有收到更新。
  • @Loek 你成功了。我完全忽略了版本,将其设置为 V3.0 效果很好。您想将其作为解决方案发布,以便我接受它作为答案吗?
  • 很高兴为您提供帮助!发布答案供参考:)

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


【解决方案1】:

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

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

另请注意,该软件包已近一年没有收到更新,因此罪魁祸首也是如此。

【讨论】:

    猜你喜欢
    • 2021-08-24
    • 1970-01-01
    • 1970-01-01
    • 2023-03-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-07
    • 2021-11-05
    相关资源
    最近更新 更多