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, Map
map) {
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,完成用户信息的提交。

  • 注意事项

    • 因为平台和业务的需求可能会有所不同,用户信息的具体处理和保存方式可能需要根据实际情况进行调整。
    • 如果需要进一步扩展,可以增加更多的字段处理逻辑,例如性别、城市等用户详细信息的获取和保存。
    • 在签名和加密环节,建议根据实际需求选择合适的加密方式,确保数据的安全性和传输的稳定性。
    上一篇:Android 微信、qq分享弹框
    下一篇:Failed to notify build listener.

    发表评论

    最新留言

    不错!
    [***.144.177.141]2025年04月07日 22时27分01秒