首页 > 系统 > Android > 正文

Android实现使用微信登录第三方APP的方法

2020-02-21 17:25:34
字体:
来源:转载
供稿:网友

说到登录APP,我们现在使用的系统有Android和IOS两种,所以当我们实现Android系统微信登录应用的时候可以不需要注册,今天就让武林技术频道小编和大家分享Android实现使用微信登录第三方APP的方法吧!

分享给大家供大家参考,具体如下:

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

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

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

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

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

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

下面开始进入主题:

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

libammsdk.jar

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

//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);

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

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

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

package 你的包名.wxapi;

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;    }  }}

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

 

 
<activity android:exported="true" android:launchMode="singleTop" android:name=".wxapi.WXEntryActivity" android:theme="@android:style/Theme.NoDisplay" />

 

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

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

得到下面的数据:

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

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

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

https://api.weixin.qq.com/sns/userinfo?access_token=ACCESS_TOKEN&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中。

上文就是武林技术频道小编给大家介绍的Android实现使用微信登录第三方APP的方法,看完都知道怎么操作了吧,有需要的朋友可以参考一下。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表