Oauth www.googleapis.com/userinfo/email根据作用域返回不同的结果

Oauth www.googleapis.com/userinfo/email根据作用域返回不同的结果,oauth,youtube-api,google-api,google-oauth,Oauth,Youtube Api,Google Api,Google Oauth,使用谷歌的,它可以显示: 如果您只选择GoogleOAuthAPIv2范围,并使用标题中的url获取电子邮件,那么您将获得gmail地址 另一方面,如果您选择该范围和youtube范围,那么您将获得google+电子邮件地址,而不是gmail地址 发生这种情况似乎令人不安;我想使用gmail地址来识别应用程序中的用户无论作用域的组合如何,我如何每次都能获得gmail地址?我不想让用户登录两次(一次是为了获得youtube api v3的令牌,一次是为了获得Oauth api v2的gmail地址

使用谷歌的,它可以显示:

  • 如果您只选择GoogleOAuthAPIv2范围,并使用标题中的url获取电子邮件,那么您将获得gmail地址
  • 另一方面,如果您选择该范围和youtube范围,那么您将获得google+电子邮件地址,而不是gmail地址
  • 发生这种情况似乎令人不安;我想使用gmail地址来识别应用程序中的用户无论作用域的组合如何,我如何每次都能获得gmail地址?我不想让用户登录两次(一次是为了获得youtube api v3的令牌,一次是为了获得Oauth api v2的gmail地址的令牌)


    另外,还有一个麻烦;在“应用程序想要”屏幕中,/auth/userinfo.email作用域导致我们被告知应用程序想要“查看您的电子邮件地址”“知道您在Google+上是谁”…我真的希望这不会导致后者!

    我不知道gmail电子邮件地址和google+电子邮件地址之间的区别。是不是您的用户有两个同时登录,并且每个范围使用不同的登录

    谷歌建议不要使用电子邮件地址作为标识符,因为它可以更改。在电子邮件地址旁边是一个谷歌用户ID,您应该使用它作为标识符


    +关于“知道你在Google+上是谁”的评论,请点击1。我不想要它,也没有要求它,但谷歌提出了它,这扼杀了我的客户获取。

    好吧,你大概需要一个链接的Google+帐户来连接youtube帐户。然后你应该能够理解我的意思;它不漂亮。你能发布你下面的详细步骤吗?如果我尝试一下我认为你的意思,它对我和我来说都很好获取相同的电子邮件地址。唯一的区别是,如果我包含youtube作用域,则帐户选取器还会在我的主电子邮件地址旁边显示我的youtube频道地址。如果我选取我的主电子邮件地址,则随后将返回该地址