
Android 微信,友盟授权;
发布日期:2021-05-14 08:18:48
浏览次数:18
分类:精选文章
本文共 3208 字,大约阅读时间需要 10 分钟。
private void authorization(SHARE_MEDIA share_media) { final UMShareConfig config = new UMShareConfig(); config.isNeedAuthOnGetUserInfo(true); UMShareAPI umShareAPI = UMShareAPI.get(this); umShareAPI.setShareConfig(config); umShareAPI.getPlatformInfo( this, share_media, new UMAuthListener() { @Override public void onStart(SHARE_MEDIA share_media) { Log.d(TAG, "onStart " + "授权开始"); } @Override public void onComplete(SHARE_MEDIA share_media, int i, Mapmap) { Log.d(TAG, "onComplete " + "授权完成"); String uid = map.get("uid"); // 解密处理 HashMap hashMap = new HashMap<>(); hashMap.put("unionid", map.get("unionid")); hashMap.put("openid", map.get("openid")); // 可以根据实际需求保留或删除其他字段 // hashMap.put("nickname", map.get("name")); // hashMap.put("avatar", map.get("iconurl")); // hashMap.put("method", urlManage.LOGIN_WECHAT); intent_resign = new Intent(LoginActivity.this, RegisterActivity.class); intent_resign.putExtra("nickname", map.get("name")); intent_resign.putExtra("headimgurl", map.get("iconurl")); intent_resign.putExtra("openid", map.get("openid")); intent_resign.putExtra("unionid", map.get("unionid")); intent_resign.putExtra("type", "Wxchat"); startActivity(intent); // 其他业务处理逻辑 hashMap.put("method", urlManage.Is_wechat); hashMap.put("unionid", map.get("unionid")); hashMap.put("timestamp", TimeUtil.getTimeLong() + ""); String sign = Encrypt.encrytSHA256(hashMap, null); hashMap.put("sign", sign); Aes aes = new Aes(); HashMap data = aes.getAesParam(hashMap, sign); getP().requestPost(Is_wechat, getLoginUrl, data); } @Override public void onError(SHARE_MEDIA share_media, int i, Throwable throwable) { Log.d(TAG, "onError " + "授权失败"); } @Override public void onCancel(SHARE_MEDIA share_media, int i) { Log.d(TAG, "onCancel " + "授权取消"); } } );}
友盟文档
本文详细介绍了友盟 OAuth 授权流程的实现方法,主要针对微信分享平台进行了配置和调用。以下是具体实现细节:
初始化分享配置:通过 UMShareConfig 类设置需要的授权参数,确保用户信息能够在获取时进行校验。
获取分享平台实例:使用 UMShareAPI.get(this) 获取当前应用的分享平台实例,并将配置参数进行设置。
平台信息获取:调用 getPlatformInfo 方法,传递当前分享平台的信息及回调接口,进行平台认证。
授权成功回调:实现了授权成功、授权取消以及授权失败的处理逻辑,分别通过日志输出相应信息进行反馈。
用户信息处理:在授权成功后,获取用户的基本信息并存储到 HashMap 中,具体包括:
- 用户唯一标识符 (uid)
- 联合 ID (unionid)
- OpenID (openid)
- 用户昵称 (nickname)
- 头像 URL (headimgurl)
请求注册:在获取用户信息后,构造意图对象,并将用户信息作为额外参数传递至注册页面,完成用户信息的保存和处理。
签名与加密:为用户信息生成签名,采用 AES 加密算法进行数据保护,确保传输过程中的安全性。
提交数据:经过签名和加密后的数据通过 requestPost 方法发送至指定URL,完成用户信息的提交。
注意事项
- 因为平台和业务的需求可能会有所不同,用户信息的具体处理和保存方式可能需要根据实际情况进行调整。
- 如果需要进一步扩展,可以增加更多的字段处理逻辑,例如性别、城市等用户详细信息的获取和保存。
- 在签名和加密环节,建议根据实际需求选择合适的加密方式,确保数据的安全性和传输的稳定性。
发表评论
最新留言
不错!
[***.144.177.141]2025年04月07日 22时27分01秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
限流的算法有哪些?
2019-03-11
Failed to notify build listener.
2019-03-11
TextWiew单个线条
2019-03-11
Android Studio updating indices 一直刷新和闪烁
2019-03-11
个人购买服务器问题?
2019-03-11
pwntools编写技巧
2019-03-11
How2Heap笔记(三)
2019-03-11
阿里云轻量云GPU服务器配置
2019-03-11
go--microSocket服务端 php客户端
2019-03-11
如何修改Pspice元件库中元件的模型参数?
2019-03-11
51单片机汇编程序——查表
2019-03-11
小程序提交新数据后如何返回上一页并刷新数据?
2019-03-11
qt c++实现的ai贪吃蛇吃满屏幕,超详细!(二)ai的具体实现
2019-03-11
linux 查看log日志相关命令
2019-03-11
IDEA 2019 安装 mybatis-plus插件
2019-03-11
div 实现光标悬停变成手型
2019-03-11
layer.confirm 无效
2019-03-11
Java 回调机制
2019-03-11
7、回归和特征选择
2019-03-11