关于使用微信登录第三方APP的实现(Android版)

发布时间:2019-10-14 发布网站:大佬教程
大佬教程收集整理的这篇文章主要介绍了关于使用微信登录第三方APP的实现(Android版)大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

使用微信登录APP,免去注册过程,现在已经有很多的类似应用了。集成该功能过程不复杂,但还是有一些地方需要注意的。

开始之前,需要做下面的准备工作。

1、到微信开放平台注册你的APP,并申请开通微信登录的权限。参考这里:

2、下载Android SDK和签名查看工具,请参考:

3、获取到APP的签名,并填写到微信开放平台。

下面开始进入主题:

引入微信登录相关SDK到项目的lib文件夹中,就一个文件:

libammsdk.jar

调用微信,申请用户授权:

api = WXAPIFactory.createWXAPI(this,"APP_ID",.registerApp("APP_ID"SendAuth.Req req = <span style="color: #0000ff;">new SendAuth.<span style="color: #000000;">Req();

<span style="color: #008000;">//<span style="color: #008000;">授权读取用户信息
req.scope = "snsapi_userinfo"<span style="color: #000000;">;

<span style="color: #008000;">//<span style="color: #008000;">自定义信息
req.state = "wechat_sdk_demo_test"<span style="color: #000000;">;

<span style="color: #008000;">//<span style="color: #008000;">向微信发送请求
api.sendReq(req);

将APP_ID替换成你在微信开放平台申请到的,上面的代码就可以调起微信了。

授权成功后,微信会返回一个code,下面介绍如何接收微信回传的信息。

在你的包名相应目录下新建一个wxapi目录,并在该wxapi目录下新增一个WXEntryActivity.java文件,输入类似下面的代码:

package 你的包名.<span style="color: #0000ff;">public <span style="color: #0000ff;">class WXEntryActivity <span style="color: #0000ff;">extends Activity <span style="color: #0000ff;">implements<span style="color: #000000;"> IWXAPIEventHandler{

@Override
</span><span style="color: #0000ff;"&gt;public</span><span style="color: #000000;"&gt; void onCreate(Bundle savedInstanceState) {
    super</span>.<span style="color: #000000;"&gt;onCreate(savedInstanceState);

    </span><span style="color: #008000;"&gt;//</span><span style="color: #008000;"&gt;注册API</span>
    api = WXAPIFactory.createWXAPI(this,"APP_ID"<span style="color: #000000;"&gt;);
    api</span>.handleIntent(getIntent(),<span style="color: #000000;"&gt; this);
}


@Override
</span><span style="color: #0000ff;"&gt;public</span><span style="color: #000000;"&gt; void onResp(BaseResp resp) {

    </span><span style="color: #0000ff;"&gt;if</span>(resp instanceof SendAuth.<span style="color: #000000;"&gt;Resp){
        SendAuth</span>.Resp newResp = (SendAuth.<span style="color: #000000;"&gt;Resp) resp;

        </span><span style="color: #008000;"&gt;//</span><span style="color: #008000;"&gt;获取微信传回的code</span>
        <span style="color: #0000ff;"&gt;String</span> code = newResp.<span style="color: #000000;"&gt;code;
    }

}

}

在AndroidManifest.xml中加入下面的代码:

修复WXEntryActivity中的错误,在onResp方法中获取到code,然后通过下面的接口获取到token和openid:

得到下面的数据:

"access_token":"ACCESS_TOKEN","expires_in":7200,"refresh_token":"REFRESH_TOKEN","openid":"OPENID","scope":"SCOPE","unionid":"o6_bmasdasdsad6_2sgVt7hMZOPfL"

openid可以作为用户的唯一标识,将openid保存下来,就可以实现登录状态的检查了。

如果需要获取用户的信息,例如昵称,头像,可以使用下面的接口:

得到的数据为:

"openid":"OPENID","nickname":"NICKNAME","sex":1,"province":"PROVINCE","city":"CITY","country":"COUNTRY","headimgurl": "http://wx.qlogo.cn/mmopen/g3MonUZtNHkdmzicIlibx6iaFqAc56vxLSUfpb6n5WKSYVY0ChQKkiaJSgQ1dZuTOgvLLrhJbERQQ4eMsv84eavHiaiceqxibJxCfHe/0","privilege":"PRIVILEGE1","PRIVILEGE2","unionid": " o6_bmasdasdsad6_2sgVt7hMZOPfL"}

更多的接口使用,请参考:

可能的问题

1、无法调起微信。

可能的原因是签名错误,请检查签名。

2、无法接受到微信回传的信息

可能的原因是没有把WXEntryActivity加入到AndroidManifest.xml中。

大佬总结

以上是大佬教程为你收集整理的关于使用微信登录第三方APP的实现(Android版)全部内容,希望文章能够帮你解决关于使用微信登录第三方APP的实现(Android版)所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ群:277859234,请注明来意。