QQ第三方登录
2015-10-24 18:05
357 查看
不罗嗦,Android第三方APP想用QQ账号注册,从而达到登录的目的。这里贴出实现的过程及代码。步骤: 第一步:首先要到腾讯开放平台注册,获取开发者身份,然后创建移动应用获得APP_ID。[腾讯开放平台](http://open.qq.com/) 第二步:当你注册完成以后,你就可以下载他的Demo和SDK了(当然不注册也可以下载),愿意看他的demo的可以看,我这里给出我的代码(我们公司用的不是纯生态的Android,UI界面是用的web做的,我做的只是接口,不过原理都是一样的) `// 获取Tencent实例,我们就是利用这个实例的login方法来出发登录事件 String APP_ID = "XXXXXXXX"; // 自己申请的APP_ID Tencent mTencent = Tencent.createInstance(APP_ID, activity); mTencent.login(activity, "all", new BaseUiListener());` 这里,我们调用的mTencent.login(arg0, arg1, arg2)方法,参数解释如下: 参数一:Activity对象。不能是Context对象,因为跳转到腾讯的activity,在SDK里面 参数二:是获取的权限,避免麻烦,统一获取所有权限"all" 参数三:要实现它这个借口IUiListener,具体实现的代码: private class BaseUiListener implements IUiListener { // 登录成功 @Override public void onComplete(Object response) { QQToken qqToken = mTencent.getQQToken(); final String accessToken = qqToken.getAccessToken(); final String openId = qqToken.getOpenId(); // 获取用户信息 UserInfo info = new UserInfo(activity, qqToken); info.getUserInfo(new IUiListener() { @Override public void onComplete(Object response) { JSONObject responseJsonobject = (JSONObject) response; try { String nickname = responseJsonobject.getString("nickname"); String imageUrl = responseJsonobject .getString("figureurl_qq_2"); String gender = responseJsonobject.getString("gender"); String result = "{'nickname':'" + nickname + "','imageUrl':'" + imageUrl + "','gender':'" + gender + "','accessToken':'" + accessToken + "','openId':'" + openId + "'}"; String message = "javascript:getQQresult('" + result + "')"; System.out.println(result); Message handleMsg = handler.obtainMessage( Constant.EXE_JS, message); handler.sendMessage(handleMsg); } catch (JSONException e) { Toast.makeText(context, "登录失败",Toast.LENGTH_SHORT).show(); e.printStackTrace(); } } @Override public void onError(UiError arg0) { Toast.makeText(context, "登录失败",Toast.LENGTH_SHORT).show(); } @Override public void onCancel() { Toast.makeText(context, "取消登录",Toast.LENGTH_SHORT).show(); } }); } // 登录取消 @Override public void onCancel() { Toast.makeText(context, "登录失败",Toast.LENGTH_SHORT).show(); } // 登录失败 @Override public void onError(UiError arg0) { Toast.makeText(context, "取消登录",Toast.LENGTH_SHORT).show(); } } 一般的第三方登录都是获取用户的信息,openid和accesstoken。其中openid跟accesstoken在上面代码里面给出了。 这里有两个嵌套实现接口,在第二个接口onComplete(Object response)方法的参数就是用户信息,我们这里把Object对象转换成JSON对象,然后通过JSON的get方法就可以获取到用户信息了。 第三步:用户权限,你下载SDK的时候一定下载了Demo,你可以在Demo里面考过去就可以了 经过上面三步,QQ第三方登录与获取用户信息就实现了,就是这么简单,后面还会给出其他第三方登录的实现。
相关文章推荐
- 使用C++实现JNI接口需要注意的事项
- Android IPC进程间通讯机制
- Android Manifest 用法
- [转载]Activity中ConfigChanges属性的用法
- Android之获取手机上的图片和视频缩略图thumbnails
- Android之使用Http协议实现文件上传功能
- Android学习笔记(二九):嵌入浏览器
- android string.xml文件中的整型和string型代替
- i-jetty环境搭配与编译
- android之定时器AlarmManager
- android wifi 无线调试
- Android Native 绘图方法
- Android java 与 javascript互访(相互调用)的方法例子
- android 代码实现控件之间的间距
- android FragmentPagerAdapter的“标准”配置
- Android"解决"onTouch和onClick的冲突问题
- android:installLocation简析
- android searchView的关闭事件
- SourceProvider.getJniDirectories