Android开发--第三方登录之微信
来源:互联网 发布:双11淘宝和京东交易额 编辑:程序博客网 时间:2024/06/07 10:41
Android 微信第三方登录
步骤一 微信开发者平台
我开始的解决思路是,去微信开发者平台看API文档。
这个API文档的主要意思呢,有三点:
1、你得下载这几样东西(下载链接),一个是他的范例代码,一个是他的签名生成工具。
2、如果你自己的APP想要微信第三方授权,你得去申请一个APPID,这个APPID呢,就是微信给咱们APP分配的一个代号。当然微信不是免费给你服务,为了获得这个第三方授权的功能,你得给微信交300块钱。申请到这个授权之后,你需要填写一个应用包名,和一个应用签名。
应用包名
应用签名
使用签名生成工具,输入包名,查询到应用签名
3、然后打开DEMO
程序的入口WXEntryActivity是我们所最需要关注的
// 微信发送请求到第三方应用时,会回调到该方法
@Override
public
void
onReq(BaseReq req) {
// TODO
}
当点击授权登陆的界面的时候,会自动调用这个onResp方法,所以我们可以在这里面取得所需要token。注意andorid里叫token,ios里面叫code,而不是因为sdk版本的问题,这是需要注意的。
// 第三方应用发送到微信的请求处理后的响应结果,会回调到该方法
@Override
public
void
onResp(BaseResp resp) {
int
result = 0;
switch
(resp.errCode) {
case
BaseResp.ErrCode.ERR_OK:
result = R.
string
.errcode_success;
/*获取token*/
SendAuth.Resp sendResp = (SendAuth.Resp) resp;
String code = sendResp.token;
Log.d(
"Tag"
,
"code\t"
+ code);
break
;
case
BaseResp.ErrCode.ERR_USER_CANCEL:
result = R.
string
.errcode_cancel;
break
;
case
BaseResp.ErrCode.ERR_AUTH_DENIED:
result = R.
string
.errcode_deny;
break
;
default
:
result = R.
string
.errcode_unknown;
break
;
}
APP_ID 替换为你的应用从官方网站申请到的合法appId
public
class
Constants {
// APP_ID 替换为你的应用从官方网站申请到的合法appId
public
static
final String APP_ID =
"wx77777"
;
}
// IWXAPI 是第三方app和微信通信的openapi接口
private
IWXAPI api;
final SendAuth.Req req =
new
SendAuth.Req();
req.scope =
"snsapi_userinfo"
;
req.state =
"wechat_sdk_demo_test"
;
//发送授权登陆请求
api.sendReq(req);
这一步就是和微信要code。执行了这一段代码之后。微信会调用刚才WXEntityActivity类里面的onResp()方法。并且把code返回来了。见上面那一段代码。获取到code之后就可以通过code获取access_token了。
请求以下链接获取access_token:
这步和微信通信获得access_token就是普通的访问链接。 用httpClient就行了,而不是接入指南里说的那个和微信通信的方法onReq().然后还是这样的方式通过access_token.就可以调用接口获得用户基本信息了。具体返回参数什么的接入指南里面说的很清楚。至此微信授权基本是成功了。
这里,我们要添加Custom debug keystore。上面的那个debug keystore不会和微信通信。
而我们添加的这个keystore 也要符合一些规范所以要改一改。
不过在开发的过程中要注意一下debug keystore。
步骤二 Android studio如何生成keystore文件
第一步 创建签名文件
第二步 填写签名参数
第三步 选择构建类型
第四步 查看生成第apk文件
步骤三 Android studio如何定位keystore文件
在运行微信分享Demo及新浪微博分享Demo时,需要修改使用Demo中的debug.keystore才能运行授权及和分享。
在进行Android开发中,所用到的工具,就Eclispse和Android Studio比较多。其中,使用Eclipse里修改debug.keystore的方式新浪微博文档有介绍,在Eclipse里点击"Windows-->Preferences-->Android-->Build",在右边的"Custom debug keystore"选择Demo中的debug.keystore即可。
在Android Studio中的做法是"Project Structure"中“Modules”中的应用的模块。然后选择"Signing",点击"+"号,起名为“debug”,并在“Store File”里选择Demo中的debug.keystore,如下图
然后在选择“Build Types”在“debug”中的"Signing Config"选择上面配置的"debug",如下图
点击“OK”,重新编译就可以了。
通过上面配置完后,会自动在项目模块中的build.gradle里的android {}里生成
signingConfigs {
debug {
storeFile file(
'.keystore里文件路径'
)
}
}
以及在buildTypes里生成
debug {
signingConfig signingConfigs.debug
}
当然啦,可以不用界面配置,直接在build.gradle里写上面的配置也都OK的
步骤四 获取签名 填写到微信开发者平台
接下来将定位到jks文件的工程烧写到程序中,然后将签名工具的MD码填写到微信开发者平台,就能调用第三方授权登陆了。
效果图
参考链接:
微信授权登陆接入第三方App(步骤总结)Android
Android Studio修改debug.keystore
Android Studio 签名打包过程图解
- Android开发--第三方登录之微信
- Android之微信第三方登录
- Android开发第三方登录--微信登录
- android第三方登录之微信登录详情
- android 友盟第三方登录之微信登录
- 第三方登录之微信登录
- Android第三方登录--微信登录
- android 错误集锦 -- 微信第三方登录授权开发
- 微信第三方授权登录之Android app应用
- iOS开发之第三方登录微信-- 史上最全最新第三方登录微信方式实现
- 第三方登录之微信登陆
- Android微信第三方登录接入
- Android 微信第三方App登录
- 微信第三方登录Android实现
- 微信第三方登录Android注意事项
- android 微信第三方登录
- Android微信第三方登录
- android微信第三方登录
- Python基础语法一
- service
- #1006日历问题
- MySQL查询优化之explain的深入解析
- 浅谈 PostgreSQL 的 timestamp 类型
- Android开发--第三方登录之微信
- java反射机制
- 账户名只能使用数字字母下划线
- 2017年9月7日--ResourceAccessException 和 UnknownHostException 两个异常
- Hive
- JavaScript原型中的哲学
- elasticsearch环境搭建
- Java基础——初识过滤器
- HA 高可用集群原理