前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Android微信之登录授权(集成官方SDK-Eclipse)

Android微信之登录授权(集成官方SDK-Eclipse)

作者头像
专注APP开发
发布2019-11-07 15:10:57
1.8K0
发布2019-11-07 15:10:57
举报
文章被收录于专栏:移动大前端移动大前端

推荐使用ShareSDK实现微信登录授权:

文章参考:http://www.jianshu.com/p/2ea8ae0618ef

官方SDK有点繁琐,但是可以学习了解下官方SDK是如何实现的

一.前期准备

1.帐号申请

https://open.weixin.qq.com/

首先登录微信开放平台,注册一个帐号

2.提交APP审核

为什么必须提交app审核呢?

请看下图微信开放平台接口使用权限

不提交审核,根本没法用,无语了。。。

提交需要准备:应用名称,应用简介,应用图片(28_28,108_108),应用官网

android版本:需要提供应用签名,应用包名

具体参考官网,安装步骤一步步来

这里需要注意几点:

第一:关于应用签名,需要把你的app打包成APK安装到手机,然后通过签名工具,生成对应的签名

不得不说官方的签名工具真的是给人用的吗?

官方签名工具截图

我还是推荐使用新浪的签名工具吧!

扫码安装

新浪签名工具截图

第二:如果每次打包都是采用相关的证书,那么生成的签名是一样的!!!

下面就可以提交审核了,审核周期官方说是7天,一般1-2天就可以审核通过了!

审核通过

APPID还是非常有用的,后面会用到。

3.手机安装微信客户端

补充:由于本Demo只是简单使用了文本分享API,如果你需要使用微信登录API,那么就需要进行开发者认证(具体认证流程请参考官网),非政府,事业单位,每年300,政府事业单位认证免费。

至此,前期所有的准备工作完成,下面进行代码的整合。

二.整合说明

1.导入SDK Jar包

sdk下载地址:

https://open.weixin.qq.com/cgi-bin/showdocument?action=dir_list&t=resource/res_list&verify=1&id=open1419319167&lang=zh_CN

网页截图

导入到项目中

Paste_Image.png

2.添加必要的权限

代码语言:javascript
复制
<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。

Paste_Image.png

4.发起登录授权

代码语言:javascript
复制
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

Paste_Image.png

特别说明:包名必须和中间平台里填写的包名保持一直,否则回调失败

特别说明:包名必须和中间平台里填写的包名保持一直,否则回调失败

特别说明:包名必须和中间平台里填写的包名保持一直,否则回调失败

并在manifest文件里面加上exported属性,设置为true,例如:

代码语言:javascript
复制
    <!-- 
     将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种方法

Paste_Image.png

特别说明

现在最新的官方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

效果图

Paste_Image.png

通过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

image

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 推荐使用ShareSDK实现微信登录授权:
  • 一.前期准备
  • 二.整合说明
  • 特别说明
  • 注意
  • 问题汇总1:
  • 问题汇总2:通过Eclipse安装APK,无法直接测试
  • 源码
  • 效果图
  • 通过android Studio实现,参考源码
  • 参数资料:
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档