什么,集成微信登录只要三行代码

移动开发 来源:hongyangAndroid 2083℃ 0评论


本文由JerryloveEmily投稿。

JerryloveEmily 的博客地址:

http://www.jianshu.com/users/8b661f60979b


现在第三方登录已经成为众多app青睐的功能了,而微信可以说是用户手机基本上必装的功能了,本文作者教你如何快速的集成微信登录。




对你没有看错,不是标题党,真的只要三行代码,先上结论代码:


1.在Application的onCreate中写:

// GeneralAppliction.java
public static IWXAPI sApi;
@Override
public void onCreate() {
 super.onCreate();
 sApi = WXEntryActivity.initWeiXin(this, 
        AppConst.WEIXIN_APP_ID);
}

2.在需要登录的地方添加:

// MainActivity.java
WXEntryActivity.loginWeixin(MainActivity.this, 
                GeneralAppliction.sApi);


下面对具体的集成步骤做详细的描述。


1

集成步骤

   
  1.  在开放平台注册创建应用,申请登录权限

  2. 下载sdk,拷贝相关文件到项目工程目录

  3. 全局初始化微信组件

  4. 请求授权登录,获取code

  5. 通过code获取授权口令access_token

  6. 在第5步判断access_token是否存在和过期

  7. 如果access_token过期无效,就用refresh_token来刷新

  8. 使用access_token获取用户信息


1. 在开放平台注册创建应用,申请登录权限


这一步其实不用怎么讲,无法就是在

微信开放平台(https://open.weixin.qq.com/)上注册一个账号,然后创建移动应用。




需要注意的是:应用签名的部分




此处应用签名我使用的是线上的key的md5,关于这个需要注意的问题可以看我的另外一篇文章:Android的签名总结(http://www.jianshu.com/p/1eb21e781482


2. 下载sdk,拷贝相关文件到项目工程目录


  • 开发工具包(SDK)的下载:可以使用微信分享、登录、收藏、支付等功能需要的库以及文件

    (https://res.wx.qq.com/open/zh_CN/htmledition/res/dev/download/sdk/Android_SDK_3.1.1.zip)

  • 示例Demo

    (https://res.wx.qq.com/open/zh_CN/htmledition/res/dev/download/sdk/WeChatSDK_sample_Android221cbf.zip)


下载后把libammsdk.jar文件拷贝到AS工程的libs目录,并把示例Demo里源文件目录下的wxapi目录整个拷贝到,工程目录的src下的根包下:




如果wxapi这个文件夹放的位置不对,讲无法登录,微信sdk无法找到登录的Activity授权功能。然后在Manifest.xml里面加入:

<activity    
    android:name=".wxapi.WXEntryActivity"    
    android:theme="@android:style/Theme.Translucent.NoTitleBar"
    android:configChanges="keyboardHidden|orientation|screenSize"
    android:exported="true"
    android:screenOrientation="portrait" />


3. 全局初始化微信组件


全局初始化微信组件,当然是Application的onCreate里(当然Activity的onCreate也是可以的,为了全局使用微信api对象方便操作):




4. 请求授权登录,获取code


为了同一业务的单一原则我把微信相关的都统一封装到了wxapi包下和WXEntryActivity中:




小伙伴有疑问code是啥玩意:
第三方通过code进行获取access_token的时候需要用到,code的超时时间为10分钟,一个code只能成功换取一次access_token即失效。code的临时性和一次保障了微信授权登录的安全性。第三方可通过使用https和state参数,进一步加强自身授权登录的安全性。


这样客户端使用的地方只要:

WXEntryActivity.loginWeixin(MainActivity.this, GeneralAppliction.sApi);


5. 通过code获取授权口令access_token


我们在onResp的回调方法中获取了code,然后通过code获取授权口令access_token:




6. 在第5步判断access_token是否存在和过期


在回调的onResp方法中获取code后,处理access_token是否登录过或者过期的问题:




判断授权口令是否有效:




7. 如果access_token过期无效,就用refresh_token来刷新




8. 使用access_token获取用户信息



集成的详细描述就这样,至于获取的用户信息,小伙伴们应该知道后续自己业务的需求,该怎么处理了。




如果你有好的文章想和大家分享,欢迎投稿,直接向我投递文章链接即可。


欢迎长按下图->识别图中二维码或者扫一扫关注我的公众号:

关闭

IT问道推荐

银行贷款频频被拒?
“Dr信用牛牛”让你远离信用污点 国内首家信用健康管理平台免费为你提供信用修复方案