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 微信登录分享朋友圈的功能,有需要的朋友可以看下。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值