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互联登录 ...
随机推荐
- ASP.NET MVC防范CSRF最佳实践
XSS与CSRF 哈哈,有点标题党,但我保证这篇文章跟别的不太一样. 我认为,网站安全的基础有三块: 防范中间人攻击 防范XSS 防范CSRF 注意,我讲的是基础,如果更高级点的话可以考虑防范机器人刷 ...
- ztreeDeptSelect 基于jquery和ztree的部门选择插件
插件介绍 首先我们来看插件的功能演示(效果): 插件准备好后.前台只需编写html: <input type="text" class="deptName" ...
- 触控的手牌—Cocos Creator
科普 Cocos Creator是触控最新一代游戏工具链的名称.如果不太清楚的,可以先看一些新闻. 新编辑器Cocos Creator发布: 对不起我来晚了! http://ol.tgbus.co ...
- 自定义ActionBar标题与菜单中的文字样式
自定义标题文字样式 标题样式是ActionBar样式的一部分,所以要先定义ActionBar的样式 <style name="AppTheme" parent="A ...
- 关于安装安卓SDK出现无法更新问题时的解决办法
近日,如果安装过安卓的同学可能知道,大家在使用Android SDK升级或者安装SDK的时候,出现了访问Failed to fetch URL http://dl-ssl.google.com/and ...
- ABP(现代ASP.NET样板开发框架)系列之12、ABP领域层——工作单元(Unit Of work)
点这里进入ABP系列文章总目录 基于DDD的现代ASP.NET开发框架--ABP系列之12.ABP领域层——工作单元(Unit Of work) ABP是“ASP.NET Boilerplate Pr ...
- python __getitem__, __setitem__ 实现属性的索引式存取
class MyDictionary(object): """docstring for MyDictionary""" kv = {} d ...
- 【Win10 应用开发】自定义应用标题栏
Win 10 app对窗口标题栏的自定义包括两个层面:一是只定义标题中各部分的颜色,如标题栏上文本的颜色.三个系统按钮(最大化,最小化,关闭)的背景颜色等:另一层是把窗口的可视区域直接扩展到标题栏上, ...
- ASP.NET MVC5+EF6+EasyUI 后台管理系统(27)-权限管理系统-分配用户给角色
系列目录 分配用户给角色,跟分配角色给用户操作是基本一致的. 打开模块维护,展开SysRole模块添加一个操作码,并赋予权限 设置好之后将权限授权给管理员,在SysRole的index添加操作码与js ...
- .NET Core采用的全新配置系统[8]: 如何实现配置与源文件的同步
配置的同步涉及到两个方面:第一,对原始的配置文件实施监控并在其发生变化之后从新加载配置:第二,配置重新加载之后及时通知应用程序进而使后者能够使用最新的配置.接下来我们利用一个简单的.NET Core控 ...