Android 微信第三方登陆

步骤一 微信开发者平台

我开始的解决思路是,去微信开发者平台看API文档。html

这个API文档的主要意思呢,有三点:android

一、你得下载这几样东西(下载连接),一个是他的范例代码,一个是他的签名生成工具。ios

二、若是你本身的APP想要微信第三方受权,你得去申请一个APPID,这个APPID呢,就是微信给我们APP分配的一个代号。固然微信不是免费给你服务,为了得到这个第三方受权的功能,你得给微信交300块钱。申请到这个受权以后,你须要填写一个应用包名,和一个应用签名api

应用包名android-studio

应用签名微信

使用签名生成工具,输入包名,查询到应用签名微信开发

 

三、而后打开DEMOapp

程序的入口WXEntryActivity是咱们所最须要关注的ide

?
1
2
3
4
5
// 微信发送请求到第三方应用时,会回调到该方法
@Override
public void onReq(BaseReq req) {
    // TODO
}

当点击受权登录的界面的时候,会自动调用这个onResp方法,因此咱们能够在这里面取得所须要token。注意andorid里叫token,ios里面叫code,而不是由于sdk版本的问题,这是须要注意的。工具

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
// 第三方应用发送到微信的请求处理后的响应结果,会回调到该方法
@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

?
1
2
3
4
public class Constants {
    // APP_ID 替换为你的应用从官方网站申请到的合法appId
    public static final String APP_ID = "wx77777" ;
}

 

?
1
2
3
4
5
6
7
// 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:

https://api.weixin.qq.com/sns/oauth2/access_token?appid=APPID&secret=SECRET&code=CODE&grant_type=authorization_code

这步和微信通讯得到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 {}里生成

?
1
2
3
4
5
signingConfigs {
    debug {
        storeFile file( '.keystore里文件路径' )
    }
}

以及在buildTypes里生成

?
1
2
3
debug {
    signingConfig signingConfigs.debug
}

固然啦,能够不用界面配置,直接在build.gradle里写上面的配置也都OK的

步骤四 获取签名 填写到微信开发者平台

接下来将定位到jks文件的工程烧写到程序中,而后将签名工具的MD码填写到微信开发者平台,就能调用第三方受权登录了。

 

效果图  

  

参考连接:

微信受权登录接入第三方App(步骤总结)Android

Android Studio修改debug.keystore

Android Studio 签名打包过程图解

相关文章
相关标签/搜索