在 Unity 3D 中使用 playgameservices sdk 时如何获取 google 用户的电子邮件 ID?

Posted

技术标签:

【中文标题】在 Unity 3D 中使用 playgameservices sdk 时如何获取 google 用户的电子邮件 ID?【英文标题】:How can I get email id of the google user while using playgameservices sdk in Unity 3D? 【发布时间】:2016-04-02 07:26:53 【问题描述】:

我在我的游戏中使用 playgameservices sdk 来实现统一。但是,我无法在 ios 上获取登录用户的电子邮件 ID。初始化 playgamesserviceplatform 类时是否需要定义任何权限?请让我知道获取电子邮件 ID 的正确程序。

谢谢

【问题讨论】:

目前 Google Play Game Services for iOS SDK 中存在一个错误,无法获取电子邮件地址。 【参考方案1】:

我发现这个link 可能会有所帮助。以下是链接中描述的过程

为了访问玩家的电子邮件或访问令牌,您需要在 Play 游戏控制台中配置与您的游戏关联的网络应用。如果您的游戏不使用自定义后端应用程序,您可以将启动 URL 设置为 https://localhost。

从 Web 应用程序复制客户端 ID,并将其输入到此插件的设置对话框中。这将配置访问电子邮件地址和访问令牌所需的正确权限和设置。

要获取电子邮件:

   Debug.Log("Local user's email is " +
    ((PlayGamesLocalUser)Social.localUser).Email);

获取访问令牌:

   Debug.Log("AccessToken is " +
    ((PlayGamesLocalUser)Social.localUser).accessToken);

获取 id 令牌:

   Debug.Log("IdToken is " +
    ((PlayGamesLocalUser)Social.localUser).idToken);

注意:电子邮件和访问令牌仅在 UI 线程上可用。如果需要从非UI线程获取这些,可以使用辅助函数RunOnGameThread:

   GooglePlayGames.OurUtils.PlayGamesHelperObject.RunOnGameThread(
    () =>  Debug.Log("Local user's email is " +
                ((PlayGamesLocalUser)Social.localUser).Email);
            // use the email as needed
          );

【讨论】:

以上是关于在 Unity 3D 中使用 playgameservices sdk 时如何获取 google 用户的电子邮件 ID?的主要内容,如果未能解决你的问题,请参考以下文章

在 Unity 3D 中旋转对象

如何在 Unity 中从 3D 对象中获取 2D 视图/纹理

如何在 Unity 3D 中使用 goto 属性?

Unity3D日常开发Unity3D中使用数据类保存数据,持久保存数据数据存放在跨场景调用数据类

unity 3d中怎么导入模型

我可以在 Unity3d 中使用多个游戏手柄吗?