12

我正在尝试birthday从 Google API 获取,但检索到的数据HWIOAuthBundle不包含它。

我想知道google plus apiconfig.yml 中指定的范围是否正确!

如果没有,请提供链接或更正的范围。

google:
    type:                google
    client_id:           %client_id%
    client_secret:       %secret_id%
    scope:               "https://www.googleapis.com/auth/userinfo.email https://www.googleapis.com/auth/userinfo.profile"
    paths:
        email:           email
        profilepicture:  picture
4

2 回答 2

18

我刚刚使用并使用Try It对其进行了测试。我用所有不同的范围对其进行了测试。

https://www.googleapis.com/auth/plus.login了解您的基本个人资料信息和您圈子中的人员列表。

https://www.googleapis.com/auth/plus.me在 Google 上了解您的身份 https://www.googleapis.com/auth/userinfo.email查看您的电子邮件地址 https://www.googleapis.com/ auth/userinfo.profile查看有关您帐户的基本信息

在所有范围内取回生日似乎并不重要。但重要的是必须public在帐户中设置用户生日。如果它被设置为其他任何东西,你的圈子,只有你,它不会被列出。即使您试图查看自己的信息,这似乎也是正确的。(发送给我。)

更新和年份是 2018

People api 现在返回当前用户的生日

People.get但是我怀疑它与 google+ 相关联,因此如果用户没有填写它,您可能不会获得信息。

获取https://people.googleapis.com/v1/{resourceName=people/*}

发送资源名称people/me 和生日personFields

{
  "resourceName": "people/117200475532672775346",
  "etag": "%EgQBBzcuGgwBAgMEBQYHCAkKCwwiDDQwaGhWYzc3cXJBPQ==",
  "birthdays": [
    {
      "metadata": {
        "primary": true,
        "source": {
          "type": "PROFILE",
          "id": "117200475532672775346"
        }
      },
      "date": {
        "month": 1,
        "day": 6
      }
    },
    {
      "metadata": {
        "source": {
          "type": "ACCOUNT",
          "id": "117200475532672775346"
        }
      },
      "date": {
        "year": 1971,
        "month": 1,
        "day": 6
      }
    }
  ]
于 2014-05-27T18:56:57.510 回答
0

通常你只会得到公开可见的生日。要获得私人生日,您需要使用https://www.googleapis.com/auth/user.birthday.read范围。请参阅文档,了解哪些范围为您提​​供哪些数据https://developers.google.com/people/v1/how-tos/authorizing#profile-scopes

于 2018-11-15T01:03:29.150 回答