QQ互联登录以及非官方正版应用报100044错误
QQ第三方登录的时候,显示非官方正版应用,报100044错误;
坑1:我们在QQ互联注册成功后需要设置包名和签名,签名是通过官方提供的工具生成的。注意一点:这里的签名是需要由打包签名之后APK生成,我们测试的时候是没有经过签名的,所以一般我们至少在这里需要添加两个签名:一个我们开发测试的APP直接通过官方工具生成的签名,另一个使我们APP经过我们自己的签名文件签名打包后通过官方提供的工具生成的签名;
@Override
public void onClick(View view) {
switch (view.getId()) {
case R.id.iv_login_qq://点击qq登录
onClickLogin();
break;
}
}
onClickLogin()方法:
private void onClickLogin() {
if (!mTencent.isSessionValid()) {
mTencent.login(this, "all", loginListener);
isServerSideLogin = false;
} else {
if (isServerSideLogin) { // Server-Side 模式的登陆, 先退出,再进行SSO登陆
mTencent.logout(this);
mTencent.login(this, "all", loginListener);
isServerSideLogin = false;
return;
}
mTencent.logout(this);
}
loginListener接口:
IUiListener loginListener = new BaseUiListener() {
@Override
protected void doComplete(JSONObject values) {
Timestamp = SystemClock.elapsedRealtime() + "";
Log.d(TAG,
"AuthorSwitch_SDK:" + SystemClock.elapsedRealtime());
initOpenidAndToken(values);//获取登录返回信息token等
updateUserInfo();//异步更新保存用户信息
}
};
initOpenidAndToken()方法:
public void initOpenidAndToken(JSONObject jsonObject) {
try {
token = jsonObject.getString(Constants.PARAM_ACCESS_TOKEN);
expires = jsonObject.getString(Constants.PARAM_EXPIRES_IN);
openId_qq = jsonObject.getString(Constants.PARAM_OPEN_ID);
Log.d(TAG, "initOpenidAndToken: token:" + token);
Log.d(TAG, "initOpenidAndToken: expires:" + expires);
Log.d(TAG, "initOpenidAndToken: openId:" + openId_qq);
if (!TextUtils.isEmpty(token) && !TextUtils.isEmpty(expires)
&& !TextUtils.isEmpty(openId_qq)) {
mTencent.setAccessToken(token, expires);
mTencent.setOpenId(openId_qq);
}
} catch (Exception e) {
}
}
updateUserInfo()方法:
private void updateUserInfo() {
if (mTencent != null && mTencent.isSessionValid()) {
IUiListener listener = new IUiListener() {
@Override
public void onError(UiError e) {
Log.d(TAG, "onError: ");
}
@Override
public void onComplete(final Object response) {
new Thread() {
@Override
public void run() {
JSONObject json = (JSONObject) response;if (json.has("figureurl")) {
try {
String userName = json.getString("nickname");
Log.d(TAG, "run: " + userName);
String userIcon = json.getString("figureurl_qq_2");
Log.d(TAG, "run: " + userIcon);
String gender = json.getString("gender");
String province = json.getString("province");
String city = json.getString("city");
SharedPreferences user_login = LoginActivity.this.getSharedPreferences("user_login", MODE_PRIVATE);
SharedPreferences.Editor edit = user_login.edit();
edit.putString("user_name", userName);
edit.putString("user_pic", userIcon);
edit.putString("gender", gender);
edit.putString("province", province);
edit.putString("city", city);
edit.putString("openid_qq", openId_qq);
edit.commit();
mHandler.sendEmptyMessage(POST_LOGIN_INIFO);
} catch (JSONException e) {
}
}
}
}.start();
}
@Override
public void onCancel() {
Log.d(TAG, "onCancel: ");
}
};
mInfo = new UserInfo(this, mTencent.getQQToken());
mInfo.getUserInfo(listener);
} else {
// mUserInfo.setText("");
// mUserInfo.setVisibility(android.view.View.GONE);
// mUserLogo.setVisibility(android.view.View.GONE);
}
}
必须重写onActivityResult()方法
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
Log.d(TAG, "-->onActivityResult:requestCode= " + requestCode + " resultCode="
+ resultCode);
if (requestCode == Constants.REQUEST_LOGIN
|| requestCode == Constants.REQUEST_APPBAR) {
Tencent.onActivityResultData(requestCode, resultCode, data,
loginListener);
AppShared.setUserLogin(this, true);
ToastUtils.toast("登录成功");
}
super.onActivityResult(requestCode, resultCode, data);
}
一个建议:用户头像建议保存用户头像链接后再直接保存bitmap,在onResume中下载Bitmap图片,这样即使你设置了清楚缓存,在返回给页面时也会重新去获取用户头像
QQ互联登录以及非官方正版应用报100044错误的更多相关文章
- QQ互联登录回调路径错误redirect uri is illegal(100010)
QQ互联登录设置的路径设置
- Win7执行应用报CLR20r3错误处理记录
Windows7环境下运行应用报"CLR20r3"错误,错误信息如下: 问题详细信息: 问题签名: 问题事件名称: CLR20r3 问题签名 : qbbtools.exe 问题签名 ...
- QQ互联登录提示redirect uri is illegal(100010)完美解决方法
大概2015年3月低,腾讯QQ互联开发平台调整了有关QQ登录应用回调地址填写规则,用来修复QQ登录过程因回调地址的漏洞可能导致存在的安全问题. 博主接触这块较多,但也是四月才了解此事,从4月起,所有新 ...
- 使用QQ互联登录应用
QQ登录集成插件简介 互联网应用越来越多,通常每一个应用都会要求用户注册登录,粗略估记一下,QQ,微博,微信,银行帐号.邮箱,招聘网站账户,淘宝帐号,支付宝帐号,公司OA帐号....粗略算一下,十几个 ...
- QQ互联登录 微博登录问题
qq 需要用开放平台的扣扣测试 审核通过后 开放所有用户 微博 出现获取token 个人信息失败 需要在微博里添加测试账号 审核通过后 开放所有用户
- Discuz3.1登录QQ互联显示redirect uri is illegal(100010)的解决
QQ互联最近也是BUG不断,引起了很多用户的不满,从早前关闭群组功能,到发布2.0接口标准,引发系列站长用户的连锁反应.而Discuz从X3开始,为了应对QQ互联的2.0接口标准,采用了云平台来整合Q ...
- QQ互联开发-01-开发者注册和网站应用申请
首先需要申请网站应用 要想使用QQ互联,首先需要先注册一个开发者账号,使用QQ号码可以注册,注册后,就可以创建网站应用了: 通过下面地址:https://connect.qq.com/,我们去登录QQ ...
- QQ互联登陆出现(1054) Unknown column “conuintoken” in “field list”
在dz论坛中打开了QQ互联登录功能之后提示(1054) Unknown column conuintoken in field list 错误 我们看到sql 错误就是说没有conuintoken字了 ...
- 对163k地方门户网站系统QQ互联功能修改
163k地方门户网站QQ互联申请时遇到的问题: "禁止开发商强制用户重新注册或绑定其他帐号" 原因是用户登录完QQ还需要注册帐号或者绑定原有帐号 163k地方门户网站的QQ互联登录 ...
随机推荐
- Spring Security OAuth2 开发指南
官方原文:http://projects.spring.io/spring-security-oauth/docs/oauth2.html 翻译及修改补充:Alex Liao. 转载请注明来源:htt ...
- [异常特工]android常见bug跟踪
前言 对app的线上bug的收集(友盟.云捕等)有时会得到这样的异常堆栈信息:没有一行代码是有关自身程序代码的.这使得对bug的解决无从下手,根据经验,内存不足OOM,Dialog关闭,ListVie ...
- 前端构建大法 Gulp 系列 (四):gulp实战
前端构建大法 Gulp 系列 (一):为什么需要前端构建 前端构建大法 Gulp 系列 (二):为什么选择gulp 前端构建大法 Gulp 系列 (三):gulp的4个API 让你成为gulp专家 前 ...
- Web应用多账号系统设计及微信扫码登录实现
Web应用多账号系统设计及微信扫码登录实现 1 前言概述 公司对功能测试,性能测试,安全测试等等都做了比较好的自动化后,急需要一个MIS系统来统一管理这些结果及报表. 此MIS系统特点如下: 仅内 ...
- Linux 中优秀的文本化编辑思想大碰撞(Markdown、LaTeX、MathJax)
这样一个标题可能不太准确,因为确实无法准确地解释什么叫"文本化编辑思想".其实我这篇随笔主要是想探讨 Markdown.LaTeX.MathJax,有兴趣的朋友可以继续往下看,同时 ...
- Struts2拦截器的执行过程浅析
在学习Struts2的过程中对拦截器和动作类的执行过程一度陷入误区,特别读了一下Struts2的源码,将自己的收获分享给正在困惑的童鞋... 开始先上图: 从Struts2的图可以看出当浏览器发出请求 ...
- JS事件调试 - 查找HTML元素绑定的事件以及绑定代码所在位置
日常的网页开发调试工作中,经常需要知道指定的某个网页元素绑定了哪些事件以及绑定代码的位置,下面介绍三种用来跟踪页面中的事件的方法. 1.使用firefox调试 我们可以使用firefox的debug工 ...
- MVC5 网站开发之八 栏目功能 添加、修改和删除
本次实现栏目的浏览.添加.修改和删除. 栏目一共有三种类型. 常规栏目-可以添加子栏目,也可以添加内容模型.当不选择内容模型时,不能添加内容. 单页栏目-栏目只有一个页面,可以设置视图. 链接栏目-栏 ...
- 聊聊excel生成图片的几种方式
目录 I:需求. II:实现思路. III:实现方式. IV:优缺点分析. V:结论. VI:wps安装与配置. 正文 1.需求:把excel生成等比的图片. ...
- php登录注册页面及加载
php注册界面 <h1>注册页面</h1> <form acti ...