android 微信登陆功能,Android 实现微信登录详解
前言
分享到微信朋友圈的功能早已经有了,但微信登录推出并不久,文档写的也并不是很清楚,这里记录分享一下。
正文
一、准备
二、 代码
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取得值是一样,所以如果已经有了微博的签名可以直接拷贝到微信使用)
以上对Android 微信登录分享朋友圈的功能,有需要的朋友可以看下。
android 微信登陆功能,Android 实现微信登录详解相关推荐
- android 微信登陆功能,Android集成微信登录
现在的项目中几乎都会用到微信登录分享支付之类的,我现在做的这个项目正好用到了微信登录功能,再次记录下我的使用过程: 1.第一步 先去微信开放平台注册账号,填写应用信息,提交审核,大概需要三到五天的时 ...
- 微信分享功能android,Android微信分享功能实例+demo
Android微信分享功能实例 1 微信开放平台注册 2 获得appId,添加到程序中,并运行程序 3 使用应用签名apk生成签名,添加到微信开放平台应用签名,完成注册 4 测试分享功能. 有问题请留 ...
- CocosCreator系列——接入原生微信登陆功能
CocosCreator系列--接入原生微信登陆功能 先看一下微信官方的接入文档吧,不得不说,我真的怀疑微信的文档肯定不是技术写的,简直乱得一批,看的人头昏脑胀,主要看一下这个链接的接入流程就行了,不 ...
- 微信登陆的LOL只有一个服务器,《LOL》部分大区开启微信登陆功能 扫码即可进入游戏...
<LOL>部分大区开启微信登陆功能 扫码即可进入游戏 2019-05-06 16:33:28来源:游戏下载编辑:柠檬评论(0) <英雄联盟>官方今日发公告表示,部分大区已开放微 ...
- 微信登陆的LOL只有一个服务器,英雄联盟开启微信登陆功能 网友吐槽:这波操作多此一举...
近日英雄联盟官方发布了一条公告引发网友议论声不断,原来英雄联盟官方将于8月21日8.16版本发布以后,在部分大区开启微信登陆功能测试,相信在科技越来越发达的今天,我们很多人在出门时只需要带上一部手机就 ...
- Android客户端实现注册/登录详解(一)
前言 我们在开发安卓App时难免要与服务器打交道,尤其是对于用户账号信息的注册与登录更是每个android开发人员必须掌握的技能,本文将对客户端的注册/登录功能的实现进行分析,不到之处还请指出. 在这 ...
- Android第三方登录详解2
接着Android第三方登录详解1讲 1.找到友盟 文档中心 2.找到 3.将 UMSocialService mController = UMServiceFactory.getUMSocialS ...
- [免费专栏] Android安全之数据存储与数据安全「详解」
也许每个人出生的时候都以为这世界都是为他一个人而存在的,当他发现自己错的时候,他便开始长大 少走了弯路,也就错过了风景,无论如何,感谢经历 Android安全付费专栏长期更新,本篇最新内容请前往: [ ...
- 小程序setdata优化_微信小程序 setData的使用方法详解
微信小程序 setData的使用方法详解 微信小程序 setData的使用方法详解 最近在使用微信小程序的setData时,遇到了以下问题.如下: 官网文档在使用setData()设置数组对象的某个元 ...
- Android四大组件之bindService源码实现详解
Android四大组件之bindService源码实现详解 Android四大组件源码实现详解系列博客目录: Android应用进程创建流程大揭秘 Android四大组件之bindServic ...
最新文章
- matlab 双边沿滤波,图片漫画效果(DoG算子和双边滤波)
- 推荐系统-07-lambda架构
- springboot整合图像数据库Neo4j
- P1136 迎接仪式
- 网页转图片 java_java-网页转图片
- 拼接dem,山地出现平地
- Linux学习笔记(三)
- javascript 文件的同步加载与异步加载
- RHEL7 本地yum源配置
- 实现用户裂变的5大原则
- python 基础干货 01
- checkbox全选、清除、反选
- 服务器主机自建的私有云盘,360路由器搭建私有云主机(360路由器加硬盘自建nas)...
- echart 重新加载
- 5个高清图片素材网站,无水印,免费商用。
- 签电子合同的流程是怎样的
- iOS常见错误8-Missing iOS Distribution signing identity for “XXXXX”. Xcode can request one for you.
- (8)echo 命令
- 12.26:有一种关系叫做“乔布斯与比尔盖茨”
- csgo搭建显示段位的服务器,csgo官匹隐藏分怎么看 官匹段位升级机制