时间:2021-05-21
前言
分享到微信朋友圈的功能早已经有了,但微信登录推出并不久,文档写的也并不是很清楚,这里记录分享一下。
正文
一、准备
注册、认证步骤自己来。微信开放平台: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。
注意:这里和微信的例子写的有点不一样,不过结果是一样的,这个能取到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 nullxxx 部分的内容我已经隐掉了,拿到code就能拿到access——token了,后续依据文档调用即可。
这里你可以把WXEntryActivity的theme弄成透明的,然后再弹起来一个ProgressDialog进行后续的操作(提交你自己的服务器),就能和现有的界面完全融合了。
三、注意:
3.1获取签名必须用release包。(所以你会发现微信、微博SDK取得值是一样,所以如果已经有了微博的签名可以直接拷贝到微信使用)
以上对Android 微信登录分享朋友圈的功能,有需要的朋友可以看下。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
微信小程序Toast自定义实例详解实现类似于Android的Toast提示index.js:vartimer;varinputinfo="";varapp=ge
微信小程序之网络请求简单封装实例详解在微信小程序中实现网络请求相对于Android来说感觉简单很多,我们只需要使用其提供的API就可以解决网络请求问题。普通HT
iOS、Android、Windowsphone和塞班平台。QQ同步助手等插件功能微信公众平台登录微信怎么发说说微信名字大全女生
Android图片压缩的实例详解在做微信分享的时候,由于分享的缩略图要求不得大于32K,否则不能调起微信,所以总结了一下Android图片的压缩问题,大部分资料
上文中介绍了安卓客户端与服务器交互,实现注册功能,Android客户端实现注册/登录详解(一)本文将继续介绍App与服务器的交互实现登录和自动登录的功能,上文说