【准备工作】
在实现微信登录第三方APP功能前,需完成以下准备工作:
在注册微信开放平台账户的过程中,必须同时提供APP的详细信息,这一行为是为了申请开通微信登录功能。
下载微信软件开发工具包以及签名制作工具,获取关于应用签名的必要信息,例如SHA1值,然后将这些关键信息准确录入微信开放平台规定的相应模块。若签名信息填写出现差错,将可能引发后续功能运作不畅的问题。
【集成SDK】
将微信官方所提供的SDK文件,诸如libammsdk.jar,导入至项目的libs文件夹内,同时需在build.gradle文件中对依赖关系进行相应的设置。务必确认SDK的版本与微信客户端的版本保持一致,以防因版本不匹配而导致授权流程无法顺利完成。
【调用授权接口】
在APP登录按钮事件中,通过以下代码调起微信授权页面:
API变量属于IWXAPI这一类型,它是由WXAPIFactory这一类创建出来的。在其构造的过程中,必须提供两个关键的参数,一个是上下文环境context,另一个则是“你的APP_ID”。
创建一个SendAuth.Req类型的对象,命名为req。
请求的权限范围为snsapi_userinfo;
api.sendReq(req);
在配置过程中,必须将APP_ID替换为微信开放平台所提供的AppID。随后,用户将被引导至授权页面,在那里需完成登录验证。登录验证成功后,系统将发放一个临时的凭证code。
//api注册
api = WXAPIFactory.createWXAPI(this, "APP_ID", true);
api.registerApp("APP_ID");
SendAuth.Req req = new SendAuth.Req();
//授权读取用户信息
req.scope = "snsapi_userinfo";
//自定义信息
req.state = "wechat_sdk_demo_test";
//向微信发送请求
api.sendReq(req);
【接收回调数据】
在指定目录下,需设立一个名为wxapi的子文件夹,并在该子文件夹中添加一个名为WXEntryActivity.java的文件。此文件应继承自Activity类,并确保实现了IWXAPIEventHandler接口。
在AndroidManifest.xml文件内完成注册流程,并且为该Activity设定必要的相关参数。声明微信回调:
<pre><code class="language-xml">
<activity android:name=".wxapi.WXEntryActivity">
<intent-filter>
public class WXEntryActivity extends Activity implements IWXAPIEventHandler{
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//注册API
api = WXAPIFactory.createWXAPI(this, "APP_ID");
api.handleIntent(getIntent(), this);
}
@Override
public void onResp(BaseResp resp) {
if(resp instanceof SendAuth.Resp){
SendAuth.Resp newResp = (SendAuth.Resp) resp;
//获取微信传回的code
String code = newResp.code;
}
}
}
<action android:name="android.intent.action.VIEW" />
</code></pre>
【获取AccessToken】
借助程序编写,我们得以获取微信平台所提供的access_token以及openid两项关键信息。
该链接链接至微信的API接口,主要用途是获取用户授权后的访问凭证,凭证中涵盖了应用标识(appid)、安全密钥(secret)、授权码(code)以及授权方式(authorization_code)等核心信息。
{
"access_token":"ACCESS_TOKEN",
"expires_in":7200,
"refresh_token":"REFRESH_TOKEN",
"openid":"OPENID",
"scope":"SCOPE",

"unionid":"o6_bmasdasdsad6_2sgVt7hMZOPfL"
}
用户返回的openid充当其独有身份的标志,必须在本地进行妥善保管,这样才能确保对用户的登录状态进行准确的验证。
【用户信息获取】
若要查询用户的昵称信息或头像资料,务必采用access_token,并通过调用对应的接口接口来执行这一过程。
在使用微信的API接口进行调用时,必须指定一个特定的请求链接。这个链接中嵌入了一个至关重要的访问令牌,即TOKEN,以及用户的独有标识,即OPENID。其标准格式如下:https://api.weixin.qq.com/sns/userinfo。在这个链接中,access_token之后直接跟随着TOKEN,紧随其后的是OPENID。
所返回的数据中包含了用户昵称、头像链接等关键信息,这些信息可直接应用于APP的用户资料展示功能模块。
{
"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. <b>无法调起微信</b>核实签名与开放平台登记资料是否相符,同时还需确认微信应用已妥善安装完毕。
2. <b>回调无响应</b>核实WXEntryActivity的定义是否准确无误,同时确保在AndroidManifest.xml文件中,data scheme`已被正确设置为相应的APP_ID。
执行相应步骤后,微信顺利引入了快捷登录机制,这一举措不仅简化了用户的注册手续,而且增强了用户的使用感受。在此过程中,开发者必须重视接口权限的申请以及参数的核实工作,目的是保障功能的稳定运作。
版权声明:本文为 “博览广文网” 原创文章,转载请附上原文出处链接及本声明;

工作时间:8:00-18:00
客服电话
0755-88186625
电子邮件
admin@lanyu.com
扫码二维码
获取最新动态
