一、去微信开放平台的管理中心申请移动设备的审核(需进行开发者资质认证,每年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. Compaq Visual Fortran生成静态库的方法及使用

    Compaq Visual Fortran 6.5生成lib静态库详细方法: 打开Compaq Visual Fortran,新建Fortran Static Library工程,命名为ForLib: ...

  2. [转]ubuntu16.04安装teamviewer12依赖包解决

    安装teamviewer下载地址:http://www.teamviewer.com/en/download/linux/ 下载的是:teamviewer_12.0.76279_i386.deb   ...

  3. Android 关于Acitivity 的setFlag以及launchmode的总结

    Intent几种常见的flags: .FLAG_ACTIVITY_NEW_TASK:当Intent对象包含这个标记时,系统会寻找或创建一个新的task来放置目标Activity,寻找时依据目标Acti ...

  4. iOS 解决tableView中headerView头部视图不跟随tableView滑动的方法

    解决方法如下: if (scrollView.contentOffset.y >= 0 && scrollView.contentOffset.y <= pushNewsT ...

  5. grafana快速入门

    入门 本指南将帮助您开始并熟悉Grafana.它假定您有一台正在运行的Grafana服务器,并至少添加了一个数据源. 初学者指南 观看10分钟的初学者指南,以建立仪表板,以快速介绍设置仪表板和面板. ...

  6. python3基础01(常见语法基础汇总)

    #!/usr/bin/env python# -*- coding:utf-8 -*- # 换行\n 续行\ s[:i] + s[i:] 等于 s#转义 \e 空 \000 八进制 \oyy 十六进制 ...

  7. 谈谈bootstrap在实践中的应用

    bootstrap官网是http://www.bootcss.com/ bootstrap的CDN的网址是http://www.bootcdn.cn/ 在平时写的时候尽量用CDN,这样对于网站的运行效 ...

  8. iOS开发资料

    https://github.com/XCGit/awesome-objc-frameworks https://github.com/KevinHM/ios-good-practices-the-l ...

  9. HDU3874 线段树 + 离线处理

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3874 , 线段树(或树状数组) + 离线处理 下午做了第一道离线处理的题目(HDU4417),多少有点 ...

  10. python_19_编码解码

    msg="我爱北京天安门" #字符串转成Byte类型 print(msg.encode())#encode 编码 print(msg.encode(encoding="u ...