推荐使用ShareSDK实现微信登录授权:
文章参考:http://www.jianshu.com/p/2ea8ae0618ef
官方SDK有点繁琐,但是可以学习了解下官方SDK是如何实现的
一.前期准备
1.帐号申请
https://open.weixin.qq.com/
首先登录微信开放平台,注册一个帐号
2.提交APP审核
为什么必须提交app审核呢?
请看下图微信开放平台接口使用权限
不提交审核,根本没法用,无语了。。。
提交需要准备:应用名称,应用简介,应用图片(2828,108108),应用官网
android版本:需要提供应用签名,应用包名
具体参考官网,安装步骤一步步来
这里需要注意几点:
第一:关于应用签名,需要把你的app打包成APK安装到手机,然后通过签名工具,生成对应的签名
不得不说官方的签名工具真的是给人用的吗?
我还是推荐使用新浪的签名工具吧!
扫码安装
第二:如果每次打包都是采用相关的证书,那么生成的签名是一样的!!!
下面就可以提交审核了,审核周期官方说是7天,一般1-2天就可以审核通过了!
审核通过
APPID还是非常有用的,后面会用到。
3.手机安装微信客户端
补充:由于本Demo只是简单使用了文本分享API,如果你需要使用微信登录API,那么就需要进行开发者认证(具体认证流程请参考官网),非政府,事业单位,每年300,政府事业单位认证免费。
至此,前期所有的准备工作完成,下面进行代码的整合。
二.整合说明
1.导入SDK Jar包
网页截图
导入到项目中
2.添加必要的权限
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
<uses-permission android:name="android.permission.READ_PHONE_STATE"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
3.向微信APP注册你的id
要使你的程序启动后微信终端能响应你的程序,必须在代码中向微信终端注册你的id。
4.发起登录授权
final SendAuth.Req req = new SendAuth.Req();
req.scope = "snsapi_userinfo";
req.state = "wechat_sdk_demo_test";
api.sendReq(req);
5.处理分享成功后的回调
如果你的程序需要接收微信发送的请求,或者接收发送到微信请求的响应结果,需要下面操作
a.在你的包名相应目录下新建一个wxapi目录,并在该wxapi目录下新增一个WXEntryActivity类,该类继承自Activity
特别说明:包名必须和中间平台里填写的包名保持一直,否则回调失败
特别说明:包名必须和中间平台里填写的包名保持一直,否则回调失败
特别说明:包名必须和中间平台里填写的包名保持一直,否则回调失败
并在manifest文件里面加上exported属性,设置为true,例如:
<!--
将WXEntryActivity设置为透明 android:theme="@android:style/Theme.Translucent"
这样就解决了,微信分享成功后,跳转到指定WXEntryActivity,显示微信分享信息,
而给用户视觉效果就在当前界面。
-->
<activity
android:name="wxapi.WXEntryActivity"
android:exported="true"
android:theme="@android:style/Theme.Translucent" >
</activity>
b. 实现IWXAPIEventHandler接口,微信发送的请求将回调到onReq方法,发送到微信请求的响应结果将回调到onResp方法
如何获取token:有2种方法
特别说明
现在最新的官方jar包好像不支持获得code了。直接就能得到token,省略了获取code 这一步。
所以方法不变,大家取的时候直接resp.token就行了。不用再去取code了。但是,但是,这样直接拿到token了好像按照官方文档上的方法就不能获得openid了。我也没尝试有什么新的方法,反正是jar包更新了但是文档还没更新,大家弄不成功的话可以先用旧的jar和上面获取code的方法。
旧版SDK下载:
http://download.csdn.net/detail/qq247890212/8401389
注意
如果需要混淆代码,为了保证sdk的正常使用,需要在proguard.cfg加上下面两行配置:
-keep class com.tencent.mm.sdk.** {
*;
}
问题汇总1:
问题汇总2:通过Eclipse安装APK,无法直接测试
建议直接生成APK后,进行测试
至此,你已经能使用微信Android开发工具包的API内容了。如果想更详细了解每个API函数的用法,请查阅 Android 平台参考手册 或自行下载阅读微信SDK Sample Demo源码。
源码
https://github.com/andli0626/wx_authlogin_eclipse.git
效果图
通过android Studio实现,参考源码
http://download.csdn.net/download/sagittarius1988/9244093
参数资料:
微信授权登陆接入第三方App(步骤总结)
http://blog.csdn.net/qq247890212/article/details/40822481
https://open.weixin.qq.com/cgi-bin/showdocument?action=dir_list&t=resource/res_list&verify=1&id=1417751808&token=&lang=zh_CN
http://www.bkjia.com/Androidjc/979960.html
http://androidmaster.iteye.com/blog/1887876