一、去微信开放平台的管理中心申请移动设备的审核(需进行开发者资质认证,每年300元)

1、获取应用的签名

2、在微信开放平台申请移动应用

两个注意点:①签名要填对 ②应用的包名要写对(tips: com.**.**)

应用通过审核完成后是这样的:

在应用通过审核后,拿到了AppId和AppSecret,这样我们具备了和微信授权登录的基本条件。

二、导入友盟的第三方登录的jar包和资源

jar需要4个:

httpmime-4.1.3.jar SocialSDK_WeiXin_1.jar SocialSDK_WeiXin_2.jar umeng_social_sdk.jar

三、微信授权登录

     /**
* @功能描述 : 添加微信平台授权登录
* @return
*/
private void addWXPlatform() {
// 注意:在微信授权的时候,必须传递appSecret mController = UMServiceFactory.getUMSocialService("com.umeng.login");
// 添加微信平台,APP_ID、APP_SECRET都是在微信开放平台,移动应用通过审核后获取到的
UMWXHandler wxHandler = new UMWXHandler(LoginActivity.this, APP_ID, APP_SECRET); wxHandler.setRefreshTokenAvailable(false);
wxHandler.addToSocialSDK(); }
/**
* 授权。如果授权成功,则获取用户信息
*
* @param platform
*/
private void login(final SHARE_MEDIA platform) {
mController.doOauthVerify(LoginActivity.this, platform,
new SocializeListeners.UMAuthListener() { @Override
public void onStart(SHARE_MEDIA platform) {
Toast.makeText(LoginActivity.this, "授权开始", Toast.LENGTH_SHORT).show();
} @Override
public void onError(SocializeException e,
SHARE_MEDIA platform) {
Toast.makeText(LoginActivity.this, "授权失败", Toast.LENGTH_SHORT).show();
} @Override
public void onComplete(Bundle value, SHARE_MEDIA platform) {
// 获取uid
String uid = value.getString("uid");
if (!TextUtils.isEmpty(uid)) {
// uid不为空,获取用户信息
getUserInfo(platform);
Toast.makeText(LoginActivity.this,"uid is "+uid, Toast.LENGTH_LONG).show();
} else {
Toast.makeText(LoginActivity.this, "授权失败...", Toast.LENGTH_LONG).show();
}
} @Override
public void onCancel(SHARE_MEDIA platform) {
Toast.makeText(LoginActivity.this, "授权取消", Toast.LENGTH_SHORT).show();
}
});
} /**
* 获取用户信息
*
* @param platform
*/
private void getUserInfo(SHARE_MEDIA platform) {
mController.getPlatformInfo(LoginActivity.this, platform,
new SocializeListeners.UMDataListener() { @Override
public void onStart() { } @Override
public void onComplete(int status, Map<String, Object> info) {
// String showText = "";
// if (status == StatusCode.ST_CODE_SUCCESSED) {
// showText = "用户名:" +
// info.get("screen_name").toString();
// Log.d("#########", "##########" + info.toString());
// } else {
// showText = "获取用户信息失败";
// } if (info != null) {
Toast.makeText(LoginActivity.this, info.toString(), Toast.LENGTH_SHORT).show();
String infoStr = info.toString();
CommonUtils.LogWuwei(tag,"info is "+infoStr);
}
}
});
} /**
* 注销本次登陆
* @param platform
*/
private void logout(final SHARE_MEDIA platform) {
mController.deleteOauth(LoginActivity.this, platform,
new SocializeListeners.SocializeClientListener() { @Override
public void onStart() { } @Override
public void onComplete(int status, SocializeEntity entity) {
String showText = "解除" + platform.toString() + "平台授权成功";
if (status != StatusCode.ST_CODE_SUCCESSED) {
showText = "解除" + platform.toString() + "平台授权失败[" + status + "]";
}
Toast.makeText(LoginActivity.this, showText, Toast.LENGTH_SHORT).show();
}
});
}

1、自定义宏APP_ID、APP_SECRET(都是从开放平台申请到的)

2、在微信授权登录之前,首先进行初始化(调用addWXPlatform方法进行初始化)

3、在需要授权登录时,调用login方法即可,在授权之后会在回调中得到用户的信息

比如说open_id、nickname、headimgurl、access_token等

55、android app借助友盟实现微信授权登录的更多相关文章

  1. android-------- 多渠道打包(借助友盟移动统计分析)

    好久没有发博客了,原因是换工作了,今天端午假期,所以来发一篇博客, 多渠道打包,借助友盟移动统计分析,希望对各位有所帮助 多渠道打包的理解: 渠道包就是要在安装包中添加渠道信息,也就是channel, ...

  2. Android APP 内部捐赠实现(支付宝&微信)

    Android APP 内部捐赠实现(支付宝&微信) 目前支持 支付宝和 微信. 项目地址:https://github.com/didikee/AndroidDonate https://p ...

  3. [转] Android:微信授权登录与微信分享全解析

    https://wohugb.gitbooks.io/wechat/content/qrconnent/refresh_token.html http://blog.csdn.net/xiong_it ...

  4. Android接入微信SDK之一:发起微信授权登录

    1.重要的事情首先说! 包名.应用签名.app id 三者都必须和在腾讯上申请的一致!!!否则将不能成功. 包名:就是在腾讯上申请的包名 应用签名:使用微信官网提供的<签名生成工具>(这个 ...

  5. 微信授权登录mock(在没有真实微信账号的情况下测试大量微信账户授权登录的情况)

    场景介绍 对于构建在微信公众号的系统,帐号体系往往使用微信授权登录(如各类微信商城应用系统). 这样操作不仅可以实现静默注册,对用户几乎是无感的,同时也达到了区分用户,获取用户基本信息(头像,昵称等) ...

  6. 微信授权登录(PHP)

    微信授权登录(PHP) 微信授权 OAuth2.0授权 微信网页授权 主要是在项目中遇到网页授权登录这个需求,就对此做些总结记录. OAuth2.0授权 OAuth是一个开放协议,允许用户让第三方应用 ...

  7. wap2app(五)-- 微信授权登录以及踩过的坑

    应用场景是:用Hbuilder打包app,在app中点击微信授权登录或者某一操作,调起微信授权登录,用户授权后拿到用户信息. 一.登录插件配置 先配置微信登录参数 appid和appsecret,在m ...

  8. VUE开发SPA之微信授权登录

    SPA单页应用中微信授权登录的一点思路 单页应用应该如何解决微信授权登录的尴尬跳转?后退无法返回?主要遇到的问题就是 先进入单页应用,一边渲染页面一边判断用户有没有登录,当判断到没有登录时异步数据请求 ...

  9. 微信公众平台开发——微信授权登录(OAuth2.0)

    1.OAuth2.0简介 OAuth(开放授权)是一个开放标准,允许用户让第三方应用访问该用户在某一网站上存储的私密的资源(如照片,视频,联系人列表),而无需将用户名和密码提供给第三方应用. 允许用户 ...

随机推荐

  1. js技巧-使用reduce实现更简洁的数组对象去重和数组扁平化

    Array.prototype.reduce()方法介绍: 感性认识reduce累加器: const arr = [1, 2, 3, 4]; const reducer = (accumulator, ...

  2. Java图形界面开发—简易登录注册小程序

    登录注册小代码,将学过的一些小知识融合在一起进行了使用,加深印象.本例中如果有注释不详细的地方,详见其它博客. Java程序操作数据库SQLserver详解 功能介绍:简单的登录注册系统,使用了数据库 ...

  3. IOS view拖拽(触摸事件)

    • iOS中的事件可以分为3大类型 触摸事件 加速计事件 远程控制事件 响应者对象 • 在iOS中不是任何对象都能处理事件,只有继承了UIResponder的对象才能接收并处理事 件.我们称之为“响应 ...

  4. 忽略mysql库的同步

    忽略mysql库的同步,请使用: stop slave sql_thread; change replication filter replicate_ignore_db=(mysql);

  5. POJ 3050 Hopscotch(dfs,stl)

    用stack保存数字,set判重.dfs一遍就好.(或者编码成int,快排+unique #include<cstdio> #include<iostream> #includ ...

  6. Linux基础精华(转)

    Linux基础精华 (继续跟新中...) 常用命令: Linux shell 环境 让你提升命令行效 率的 Bash 快捷键 [完整版] 设置你自己的liux alias Linux的Find使用 L ...

  7. 【BZOJ4810】[YNOI2017] 由乃的玉米田(莫队+bitset)

    点此看题面 大致题意: 给你一段序列,每次询问一段区间内是否存在两个数的差或和或积为\(x\). 莫队算法 看到区间询问+可以离线,首先想到了莫队啊. 但是,在较短的时间内更新信息依然比较难以实现. ...

  8. 2018.6.19 Java核心API与高级编程实践复习总结

    Java 核心编程API与高级编程实践 第一章 异常 1.1 异常概述 在程序运行中,经常会出现一些意外情况,这些意外会导致程序出错或者崩溃而影响程序的正常执行,在java语言中,将这些程序意外称为异 ...

  9. C语言 数组名不是首地址指针

    今天上计算机系统课的时候老师讲到了C中的聚合类型的数据结构.在解释数组名的时候说"数组名是一个指针,指向该数组的第一个元素",附上ppt(第二行): 我觉得这是不正确的,是一个常见 ...

  10. AngularJs学习笔记-组件生命周期

    组件生命周期 (1)组件生命周期钩子 constructor:组件创建时被创建 ngOnChanges: 父组件修改或初始化子组件的输入属性时被调用,如果子组件没有输入属性,则永远不会被调用,它的首次 ...