android wexin com,Android微信登陆
前言
分享到微信朋友圈的功能早已经有了,但微信登录推出并不久,文档写的也并不是很清楚,这里记录分享一下。
声明
欢迎转载,但请保留文章原始出处:)
博客园:http://www.cnblogs.com
农民伯伯: http://over140.cnblogs.com
正文
一、准备
注册、认证步骤自己来。微信开放平台:https://open.weixin.qq.com
二、 代码
2.1唤起微信登录
参考官网文档:资源中心/移动应用开放/接入指南/Android接入指南
private IWXAPI mWeixinAPI;
private
void loginWithWeixin() {
if (mWeixinAPI ==
null) {
mWeixinAPI = WXAPIFactory.createWXAPI(
this, WEIXIN_APP_ID,
false);
}
if (!mWeixinAPI.isWXAppInstalled()) {
//提醒用户没有按照微信
return;
}
mWeixinAPI.registerApp(WEIXIN_APP_ID);
SendAuth.Req req =
new SendAuth.Req();
req.scope = WEIXIN_SCOPE;
req.state = WEIXIN_STATE;
mWeixinAPI.sendReq(req);
}
WEXIN_SCOPE这里填的snsapi_userinfo,用snsapi_base提示没权限。
WEIXIN_STATE用于保持请求和回调的状态,授权请求后原样带回给第三方。该参数可用于防止csrf攻击(跨站请求伪造攻击),建议第三方带上该参数,可设置为简单的随机数加session进行校验。
不出意外就能唤起微信登录了。
2.2接收微信的请求及返回值
在你的包名相应目录下新建一个wxapi目录,并在该wxapi目录下新增一个WXEntryActivity类,参考文档在AndroidManifest.xml注册Activity。
public
class WXEntryActivity
extends Activity {
@Override
protected
void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
handleIntent(getIntent());
}
@Override
protected
void onNewIntent(Intent intent) {
super.onNewIntent(intent);
handleIntent(intent);
}
private
void handleIntent(Intent intent) {
SendAuth.Resp resp =
new SendAuth.Resp(intent.getExtras());
if (resp.errCode == BaseResp.ErrCode.ERR_OK) {
//
用户同意
}
}
}
注意,这里和微信的例子写的有点不一样,不过结果是一样的,这个能取到code等信息,测试返回数据如下:
E/WXEntryActivity(14288): onCreate...key:_wxapi_sendauth_resp_state xxx
E/WXEntryActivity(14288): onCreate...key:_wxapi_sendauth_resp_token xxxxxxxxxxxxxxxxxxxxxxxxxxxxx
E/WXEntryActivity(14288): onCreate...key:_mmessage_appPackage com.tencent.mm
E/WXEntryActivity(14288): onCreate...key:_wxapi_baseresp_transaction
null
E/WXEntryActivity(14288): onCreate...key:_wxapi_sendauth_resp_lang zh_CN
E/WXEntryActivity(14288): onCreate...key:_wxapi_command_type 1
E/WXEntryActivity(14288): onCreate...key:_mmessage_content
null
E/WXEntryActivity(14288): onCreate...key:_wxapi_sendauth_resp_country
null
E/WXEntryActivity(14288): onCreate...key:_mmessage_checksum [B@426358e8
E/WXEntryActivity(14288): onCreate...key:wx_token_key com.tencent.mm.openapi.token
E/WXEntryActivity(14288): onCreate...key:_wxapi_sendauth_resp_url xxxxxxxxxxx
E/WXEntryActivity(14288): onCreate...key:_mmessage_sdkVersion 570490883
E/WXEntryActivity(14288): onCreate...key:_wxapi_baseresp_errcode 0
E/WXEntryActivity(14288): onCreate...key:_wxapi_baseresp_errstr
null
E/WXEntryActivity(14288): onCreate...key:_wxapi_baseresp_openId
null
xxx部分的内容我已经隐掉了,拿到code就能拿到access——token了,后续依据文档调用即可。
这里你可以把WXEntryActivity的theme弄成透明的,然后再弹起来一个ProgressDialog进行后续的操作(提交你自己的服务器),就能和现有的界面完全融合了。
三、注意:
3.1获取签名必须用release包。(所以你会发现微信、微博SDK取得值是一样,所以如果已经有了微博的签名可以直接拷贝到微信使用)
结束
纠结到底是微信登录还是QQ登录,,,,
android wexin com,Android微信登陆相关推荐
- Android之调用微信登陆、分享、支付
转载:http://blog.csdn.net/lowprofile_coding/article/details/48086381 前言:用了微信sdk各种痛苦,感觉比qq sdk调用麻烦多了,回调 ...
- cocos creator接入微信登陆sdk android篇
cocos creator接入微信登陆sdk 背景 项目引擎使用cocos creator,使用android studio集成开发工具,在开发之前先做好准备工作 在微信开放平台上创建好移动应用,拿到 ...
- 微信支付android白屏,android 解决微信登陆白屏样式问题
咱们在作微信登陆或者支付的时候,会用到SDK自带的两个页面android WXEntryActivity.WXPayEntryActivityapi 可是总会由于这两个页面的样式问题,出现白屏啊抖动啊 ...
- Android 集成微信登陆不走回调onResp
上代码 <activityandroid:exported="true"android:launchMode="singleTop"android:nam ...
- Android接入微信登陆
首先添加工具包,名字为libammsdk.jar(微信有相应的包下载) 然后在src.main.java.com.****新建一个wxapi的包并存放这两个activity(名字不能更改) WXEnt ...
- Android第三方登录签名错误,关于应用签名修改后第三方微信登陆不了的问题
android员工离职后,今天重新生成了打包的key算是以防万一吧. 再次运行程序的时候发现第三方微信登陆不了. 第一步:打包程序并查看微信开放平台的应用签名是否正确. 使用新的签名打包程序 同时运行 ...
- 微信登陆接入(Android/IOS(swift)/Java后台)
本文章仅作为个人笔记 微信Android接入指南,需要登陆后查看(开放平台->资源中心->开发资源->移动应用->接入指南) 微信IOS接入指南,需要登陆后查看(开放平台-&g ...
- Android 调用微信登陆、支付、分享,出现的白屏、黑屏、闪屏问题。
当我在去调用微信的登录界面,或者其他支付界面, WXEntryActivity又一个界面,这样看起来很不协调 (WXEntryActivity类finish的时候会有闪屏的效果). 为了让用户感觉只是 ...
- native react 集成微信登录_react native 接入微信登陆(Android)
添加依赖 api 'com.tencent.mm.opensdk:wechat-sdk-android-without-mta:+' 包名.wxapi.WXEntryActivity.java pub ...
最新文章
- clone是深拷贝还是浅拷贝_Cloneable接口的作用与探索理解浅拷贝与深拷贝
- 网站title实现切换
- ant引入html页面,antdesign 中 使用 iconfont symbol方式引入图标不展示
- 比特币的缺陷以及改进
- Tidb慢日志显示不全
- php 删除相对应的id,PHP 在下面这个留言板代码中加入删除按钮,每一个删除按钮删除相对应一行数据,这怎么弄...
- 基于JAVA+SpringBoot+Mybatis+MYSQL的电影院管理系统
- java程序设计简明教程张晓龙_Java网络编程简明教程
- php在线考试系统源代码_php实现在线考试系统
- 一个方法解决Warning: Permanently added 'gitee.com,180.97.125.228' (ECDSA) to the list of
- LED的本质和发光原理是什么,彩色的LED灯是怎么做出来的
- DirectX SDK 2010 , DXSDK_Jun10.exe, 下载地址
- stm32智能避障小车(三)之L298N
- 手写仿淘宝商城页面(html+css+部分js)
- 目标追踪:FCNT、GOTURN、SiamFC、SiamRPN、SiamRPN++
- Unity发布抖音小游戏:广告ID申请
- Nginx报错:nginx: [error] invalid PID number in /run/nginx.pid的解决方案
- 个人微信支付接口,非二清,无需APP,支持H5
- Error:A problem occurred configuring project ':app'. failed to find target with hash string 'andro
- 【原创】【SPI】SPI通信协议介绍
热门文章
- 小米感谢米粉选择环保版小米11,但喜欢环保的米粉实在少之又少
- python snownlp了解_python做snowNLP文本情感分类代码示例
- 关于windows系统安装sybase数据库 服务端和客户端使sybase数据库服务启动失败的问题解决方案以sybase Ase _15.7为例
- 谷歌浏览器视频播放加速代码
- linux apache tomcat ajp,apache ajp 整合 tomcat 错误
- 51单片机步进电机全套资料(启停+正反转+加减速+显示速度+中断)【源程序+流程图+接线图+视频+答辩报告】综合设计首选
- python-传递任意数量的(关键字)实参
- 大人,时代变了!做测试也要懂Python开发!
- matlab的优势和特点,MATLAB优势特点
- python三维矩阵可视化_科学计算三维可视化---Mlab基础(基于Numpy数组的绘图函数)...