文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

Android应用添加谷歌登录(Google Sign In)

2023-09-23 18:18

关注

Android平台添加Google登录便于读取用户信息,也便于将应用发布到GooglePlay。 具体步骤如下,个人觉得还是比较繁琐的,一步一步来看吧。

服务账号创建项目

developers.google.com/workspace/g…

截屏2023-01-01 17.30.54.png 每个Google账号可以创建12个项目。

截屏2023-01-01 17.32.19.png 点击创建。

创建凭据

截屏2023-01-01 17.41.11.png

截屏2023-01-01 17.42.29.png 这里提示要先创建OAuth同意屏幕。

截屏2023-01-01 17.44.11.png 点击创建。

截屏2023-01-01 17.46.01.png 带*的信息都是要填写的,邮箱就用当前这个就好。

回来创建OAuth客户端ID。

截屏2023-01-01 17.47.47.png 选择Android。

然后获取jks的SHA1指纹。debug.keystore的调试密钥库也行,密码是android。

keytool -keystore path-to-debug-or-production-keystore -list -v

path-to-debug-or-production-keystore换成你打包签名用的jks或debug.keystore的路径也行。然后将SHA1信息填入。

截屏2023-01-01 17.55.42.png 然后下载配置信息JSON文件,后续代码会用到里面的信息。

代码编写

创建GoogleSignInClient

GoogleSignInOptions googleSignInOptions = new GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN).requestId().requestProfile().requestIdToken(getString(R.string.default_web_client_id)).requestEmail().build();mGoogleSignInClient = GoogleSignIn.getClient(this, googleSignInOptions);

点击谷歌登录按钮跳转google登录

Intent intent = mGoogleSignInClient.getSignInIntent();startActivityForResult(intent, CODE_SIGN_IN);

登录的回调

@Overrideprotected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {super.onActivityResult(requestCode, resultCode, data);if (requestCode == CODE_SIGN_IN && resultCode != 0) {    Task task = GoogleSignIn.getSignedInAccountFromIntent(data);    handleSignInResult(task);}
private void handleSignInResult(Task completedTask) {    try {        GoogleSignInAccount account = completedTask.getResult(ApiException.class);        GgOrFbUserInfo ggOrFbUserInfo = new GgOrFbUserInfo();        ggOrFbUserInfo.setAvatar(account.getPhotoUrl() == null ? "": account.getPhotoUrl().toString());        ggOrFbUserInfo.setLtype(1);        ggOrFbUserInfo.setUserId(account.getId());        ggOrFbUserInfo.setEmail(account.getEmail());        ggOrFbUserInfo.setEmailVerified(1);        ggOrFbUserInfo.setName(account.getDisplayName());        ggOrFbUserInfo.setLanguage(CommonPramsUtil.getSystemLanguage());        ggOrFbUserInfo.setFamilyName(account.getFamilyName() == null ? "" : account.getFamilyName());        ggOrFbUserInfo.setGivenName(account.getGivenName());        ggOrFbUserInfo.setRegion("zn");        login(ggOrFbUserInfo); // 这里拿用户google账号的信息调用自己业务的login        if (account.getPhotoUrl() != null) {            Glide.with(LoginActivity.this).load(account.getPhotoUrl()).into(ivAvatar);        }    } catch (ApiException e) {        // 在这里获取错误信息    }}

退出登录

mGoogleSignInClient.signOut().addOnCompleteListener(this, new OnCompleteListener() {    @Override    public void onComplete(@NonNull Task task) {    }});
后续

你可以使用firebase做一些其他的事情,如埋点统计等。

dora
原文链接:https://juejin.cn/post/7183633464069980216

最后

如果想要成为架构师或想突破20~30K薪资范畴,那就不要局限在编码,业务,要会选型、扩展,提升编程思维。此外,良好的职业规划也很重要,学习的习惯很重要,但是最重要的还是要能持之以恒,任何不能坚持落实的计划都是空谈。

如果你没有方向,这里给大家分享一套由阿里高级架构师编写的《Android八大模块进阶笔记》,帮大家将杂乱、零散、碎片化的知识进行体系化的整理,让大家系统而高效地掌握Android开发的各个知识点。
在这里插入图片描述
相对于我们平时看的碎片化内容,这份笔记的知识点更系统化,更容易理解和记忆,是严格按照知识体系编排的。

全套视频资料:

一、面试合集在这里插入图片描述
二、源码解析合集
在这里插入图片描述

三、开源框架合集
在这里插入图片描述
欢迎大家一键三连支持,若需要文中资料,直接点击文末CSDN官方认证微信卡片免费领取↓↓↓

来源地址:https://blog.csdn.net/Coo123_/article/details/128595866

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-移动开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯