仅当在流程中添加帐户时,Google 登录才会将显示名称返回为 null

Posted

技术标签:

【中文标题】仅当在流程中添加帐户时,Google 登录才会将显示名称返回为 null【英文标题】:Google Signin returns display name as null only when Add account in the flow 【发布时间】:2017-06-26 23:07:37 【问题描述】:

在我当前的项目中,我实现了 google 登录功能。登录时正在获取用户信息。在流程中,有在 google 对话框中添加帐户的选项。当用户当时尝试添加帐户时,我正确收到了电子邮件,但显示名称为空。

这是用于登录谷歌的代码。

GoogleSignInOptions gso = new GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN)
                .requestEmail()
                .requestProfile()
                .requestScopes(new Scope(Scopes.PLUS_ME))
                .requestScopes(new Scope(Scopes.PLUS_LOGIN))
                .build();

谁能帮我解决这个问题?

【问题讨论】:

以下解决方案对您有用吗? 【参考方案1】:

从谷歌开发控制台创建网络令牌并在你的安卓应用程序中使用它。 googleblog 有关于此的精彩指南。如果你按照它,那么我相信,你的问题将得到解决。前段时间我也遇到过这种情况,然后我跟着他们,我的问题就解决了。

GoogleSignInOptions gso =
new GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN)
    .requestIdToken(serverClientId) // here you will pass the client server id that you created
    .requestEmail()
    .build();

我希望这会对你有所帮助。

【讨论】:

以上是关于仅当在流程中添加帐户时,Google 登录才会将显示名称返回为 null的主要内容,如果未能解决你的问题,请参考以下文章

PowerBI分析功能初探

如何在使用 Google 登录按钮时不将 Google 帐户添加到 Android 手机

在Google Cloud Platform上为其他帐户创建SSH密钥

方法:people.get()不返回名称

每次用户登录时,Google 登录都使用相同的帐户

通过Google Apps向Django发送电子邮件时,为电子邮件帐户指定名称