第三方登录之QQ登录集成(二)
上面说到webview方式登录QQ的集成,现在开始客户端登录的集成.首先还是下载客户端的SDK和DEMO,
示例代码如下:
首先清单文件
<?xml version="1.0" encoding="utf-8"?>
<manifest package="test.example.com.mapp"xmlns:android="http://schemas.android.com/apk/res/android"><uses-permission android:name="android.permission.INTERNET" /><uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /><uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /><!-- SDK2.1新增获取用户位置信息 --><uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /><uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /><uses-permission android:name="android.permission.ACCESS_LOCATION_EXTRA_COMMANDS" /><uses-permission android:name="android.permission.CHANGE_WIFI_STATE" /><uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /><uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /><uses-permission android:name="android.permission.READ_PHONE_STATE" /><uses-permission android:name="android.permission.GET_TASKS"/><applicationandroid:allowBackup="true"android:icon="@mipmap/ic_launcher"android:label="@string/app_name"android:supportsRtl="true"android:theme="@style/AppTheme"><activity android:name=".MainActivity"><intent-filter><action android:name="android.intent.action.MAIN"/><category android:name="android.intent.category.LAUNCHER"/></intent-filter></activity><activityandroid:name="com.tencent.tauth.AuthActivity"android:launchMode="singleTask"android:noHistory="true" ><intent-filter><action android:name="android.intent.action.VIEW" /><category android:name="android.intent.category.DEFAULT" /><category android:name="android.intent.category.BROWSABLE" /><data android:scheme="tencent222222" /><!-- 100380359 100381104 222222 --></intent-filter></activity><activityandroid:name="com.tencent.connect.common.AssistActivity"android:screenOrientation="behind"android:theme="@android:style/Theme.Translucent.NoTitleBar"android:configChanges="orientation|keyboardHidden"></activity></application></manifest>
注意, AssistActivity只有在运行代码后,才会在logcat中提示错误信息,告诉需要另外配置该activity
Mainactivity代码
public class MainActivity extends AppCompatActivity implements IUiListener {private static Tencent mTencent;private String mAppid = "1105667444";private TextView mUserInfo;private ImageView mUserLogo;private UserInfo mInfo;public static void initOpenidAndToken(JSONObject jsonObject) {String token = jsonObject.optString(Constants.PARAM_ACCESS_TOKEN);String expires = jsonObject.optString(Constants.PARAM_EXPIRES_IN);String openId = jsonObject.optString(Constants.PARAM_OPEN_ID);if (!TextUtils.isEmpty(token) && !TextUtils.isEmpty(expires) && !TextUtils.isEmpty(openId)) {mTencent.setAccessToken(token, expires);mTencent.setOpenId(openId);}}@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);//初始化mTencentinit();}private void init() {mTencent = Tencent.createInstance(mAppid, this);}public void login(View view) {mTencent.login(this, "all", this);}@Overrideprotected void onActivityResult(int requestCode, int resultCode, Intent data) {if (requestCode == Constants.REQUEST_LOGIN || requestCode == Constants.REQUEST_APPBAR) {//处理返回的结果Tencent.onActivityResultData(requestCode, resultCode, data, this);}super.onActivityResult(requestCode, resultCode, data);}@Overridepublic void onComplete(Object response) {showToast("登录成功");JSONObject json = (JSONObject) response;//通过返回的数据,获得openid和tokeninitOpenidAndToken(json);//获取用户信息updateUserInfo();}private void updateUserInfo() {if (mTencent != null && mTencent.isSessionValid()) {mInfo = new UserInfo(this, mTencent.getQQToken());//获取用户信息mInfo.getUserInfo(listener);}else {mUserInfo.setText("");mUserInfo.setVisibility(android.view.View.GONE);mUserLogo.setVisibility(android.view.View.GONE);}}private IUiListener listener = new IUiListener() {@Overridepublic void onComplete(Object response) {//成功获取的回调.在这里乐意获取用户的头像,昵称等信息showToast(response.toString());}@Overridepublic void onError(UiError uiError) {}@Overridepublic void onCancel() {}};public void showToast(String s) {Toast.makeText(this, s, Toast.LENGTH_SHORT).show();}@Overridepublic void onError(UiError uiError) {showToast("登录失败");}@Overridepublic void onCancel() {showToast("取消登陆");}}
第三方登录之QQ登录集成(二)相关推荐
- dedecms织梦第三方登录插件-QQ登录、微博登录、微信登录
织梦程序集成第三方QQ登录.微博登录.微信登录,获取QQ.微博.微信,并存储至数据库,一键注册为网站会员,不用再次填写绑定信息,方便粘贴用户更强. 织梦第三方登录效果 第三方登录插件特点 1.所有文件 ...
- 网站如何接入第三方登录,微信登录和QQ登录:注册认证篇
第三方登录平台接入 (QQ\微信登录) QQ登录接入 第一步成为QQ应用开发者,审核期限七天 一.所需材料 1.公司注册相关信息 2.营业执照扫描件 微信登录接入 第一步成为微信开发平台开发者,认证费 ...
- flutter在IOS上的登录实现——QQ登录、微信登录、自动识别手机号一键登录、apple登录
flutter在IOS上的登录实现--QQ登录.微信登录.自动识别手机号一键登录.apple登录 一.QQ登录 使用的第三方库: 具体操作方法: 1.配置 Universal Links 2.QQ互联 ...
- 美多商城项目之用户登录:账号登录、QQ登录
一.账号登录 1.1 用户名登录 1. 用户名登录逻辑分析 2. 用户名登录接口设计 1.请求方式 选项 方案 请求方法 POST 请求地址 /login/ 2.请求参数:表单 参数名 类型 是否必传 ...
- uniapp实现微信登录或者QQ登录
uniapp实现微信登录或者QQ登录 无论是哪种登录, 都要用到uni.login 一. 获取服务供应商 在实现登录前,先查看一下可以使用哪种方式登录. 在APP平台, 可用的服务商, 是打包环境中配 ...
- 商城项目---day04---账号登录和QQ登录
一:用户名登录和用户名展示: # 用户名登陆接口实现 class LoginView(View):def post(self, request):data = json.loads(request.b ...
- PHP 接入(第三方登录)QQ 登录 OAuth2.0 过程中遇到的坑
前言 绝大多数网站都集成了第三方登录,降低了注册门槛,增强了用户体验.最近看了看 QQ 互联上 QQ 登录的接口文档.接入 QQ 登录的一般流程是这样的:先申请开发者 -> 然后创建应用(拿到一 ...
- 第三方登录(QQ登录)开发流程详解
一.准备工作 接入QQ登录前,网站需首先进行申请,获得对应的appid与appkey,以保证后续流程中可正确对网站与用户进行验证与授权. 申请appid和appkey的用途 appid :应用的唯一标 ...
- iOS 第三方登录之 QQ登录
一. 首先需要下载腾讯qq登录所需的库,下载地址是http://open.qq.com/ . 需要用到的有TencentOpenAPI.framework 和TencentOpenApi_IOS_Bu ...
最新文章
- F-Strings:超级好用的Python格式字符串!!
- OpenGL创建hello Window窗口
- Shell(12)——awk(2)
- git仓库删除文件夹/文件
- word activex部件不能创建对象_如何用Word批量制作员工工作证?1分钟搞定1000份!只需三步...
- 同宿舍的程序员毕业五年之女生篇:有人怀疑人生,有人考虑出家
- Java描述设计模式(14):解释器模式
- Android第十四期 - 可扩展选项卡
- 测试驱动javascript开发 -- 3.测试驱动开发过程(上)
- MATLAB几何均值滤波
- COMMUNITY DETECTION
- 联想启天M4880(老机)安装Centos7安装总结
- 北大青鸟python学费_北大青鸟学费贵吗,北大青鸟学费标准_北大青鸟综合校区为您解答...
- 007 JVM堆内存划分
- 汉语是世界上唯一一种面向对象的高级语言【转】
- 2020及2021年常被利用的30个软件漏洞
- CAD教程:CAD联动模式的使用技巧
- vue项目的导出功能
- python 爬取天猫店铺商品评论
- 联系人列表字母排序索引(一)
热门文章
- python 输入与输出函数 IPO模式 200307
- SQL Server关于AlwaysOn的理解
- GE CimplicityV11.1安装步骤
- 我的世界服务器头像文件,端游我的世界怎么换头像,端游我的世界怎么换头像框...
- TopCoder Arena 插件配置(1)Greed 2.0
- 大数据开发,想写代码不给我写,到底是人性的扭曲,还是道德的沦丧?
- 使用Proxmox搭建私有云平台
- Unity Run Time Gizmos
- 哈罗python的学费多少-数据分析面试题总结
- 小灰 “生二胎” 啦!