收藏官网首页
查看: 3851|回复: 5

关于SDK用QQ第三方登录---这不是骂人帖

4

主题

13

帖子

104

积分

注册会员

Rank: 2

积分
104
发表于 2015-10-20 16:43:25 | 显示全部楼层 |阅读模式
校园创客福利
近日老板让我修改APP,其中有增加这个第三方登录的任务,曾经,我折腾过机智云所有API,除了这个第三方登录,没想到第一次上手就栽了,正如群主卓玛曾经说的,我技术不够,也不能碰到问题就找别人,要自己钻研
  • 具体问题是这样的:
    1. public void userLoginWithThirdAccountType(XPGWifiSDK.XPGWifiThirdAccountType thirdAccountType, String uid, String token)
    复制代码
    这个是协议的第三方登录接口,现在来看看第一个参数:
    1. public static enum XPGWifiThirdAccountType {
    2.         XPGWifiThirdAccountTypeBAIDU,
    3.         XPGWifiThirdAccountTypeSINA,
    4.         XPGWifiThirdAccountTypeQQ;

    5.         private XPGWifiThirdAccountType() {
    6.         }
    7.     }
    复制代码
    上面的代码是sdk内部代码,由上可知,QQ的登录类型值为2
  • 第二第三个参数分别为QQ认证成功之后获取到的,QQ认证也有回调,因而我可以确定QQ认证的确是成功了,而且能够正常获取到ipenid和token,日志为证:
    1. 10-20 16:20:26.241 D/Snlion-mc(12256): ===== 1445329226---mcLoginActivity---onComplete---...QQ认证...OK---uid: 22519DFC3089CE06A36C55456B11B768  Token: 9B21DFE87EC1397113E0352E1859B439 =====
    复制代码
    以上日志是在QQ回调成功函数里面输出的
  • 我相信卓玛副总裁说的是对的,问题一定出在我这里,我对后面两个参数进行了“各种各样的”转换,也许有人会问,就一个字符串,能有什么“各种各样的转换”,说实话,我也忘掉了我都做过哪些愚蠢的转换,结果当然还是失败的,就这么一个接口,就三个参数,回调也有,只是回调的结果不如人意而已,回调还是完完整整的执行了嘛,所以,问题一定出在调用那里,一定出在那三个参数那里,后面两个参数,无论我做过何种愚蠢的转换,它们的值还是它们应该等于的值(字符串的本性不能改变),所以现在,请允许我暂时忽略这两个参数,请允许我暂时怀疑一下第一个参数的问题,或者那个接口的问题,跟踪一下这个接口:
    1. public void userLoginWithThirdAccountType(XPGWifiSDK.XPGWifiThirdAccountType thirdAccountType, String uid, String token) {
    2.         boolean accountType = false;
    3.         byte accountType1;
    4.         if(XPGWifiSDK.XPGWifiThirdAccountType.XPGWifiThirdAccountTypeSINA == thirdAccountType) {
    5.             accountType1 = 1;
    6.         } else {
    7.             accountType1 = 0;
    8.         }

    9.         GWifiSDK.sharedInstance().RegisterThirdAccountUser(accountType1, uid, token);
    10.     }
    复制代码
    这是SDK里面的原原本本的代码,位于XPGWifiSDK.class里面,还记得前面我特别点明的,QQ的登录类型值为2.。。。观察一下代码,QQ的类型值被按照0来处理的,回头看一下0,0是BAIDU,没错,你没看错,就是度娘,然后我就开始怀疑了,QQ跟度娘在云的业务上有合作?我不信。。。所以,我直接用了上面代码的最后一句:
    1. GWifiSDK.sharedInstance().RegisterThirdAccountUser(2, uid, token);
    复制代码
    没错,我直接给了accounttype1为2,后面两个是局部变量,至于为什么我用的局部变量跟SDK里面的形式变量同名?嗯。。。巧合!!下面是现在的日志输出
    1. 10-20 16:14:48.121 I/xpgc    (12256): 16:14:48 HTTP request will Send http body
    2. 10-20 16:14:48.121 W/xpgc    (12256): 16:14:48 HTTP request Send http body: {"authData":{"src":"qq","uid":"22519DFC3089CE06A36C55456B11B768","token":"9B21DFE87EC1397113E0352E1859B439"}}
    复制代码
    看到“src”:“qq”,了么?说明度娘跟QQ还不是一家的


  • 我的fae告诉我说机智云的SDK工程师们第三方登录接口验证是没问题的,我就想你们看着你们自己的源代码告诉我,这个QQ第三方登录你们是怎么验证的没问题的!!!


  • 现在,QQ第三方登录依然还是不管用,当然,已经是其他的错误了,我不敢找你们的技术支持了,我怕你们还告诉我这是我的问题,当然了,副总裁,我现在告诉你,我还是相信问题是我自己的,你们的代码在你们那边是正常的,所以对于我也应该是正常的,出了问题一定是我的原因。


  • PS:机智云的技术支持一直都让我非常非常的满意!!!感谢!!!

27

主题

235

帖子

1053

积分

金牌会员

Rank: 6Rank: 6

积分
1053
发表于 2015-10-20 17:33:06 | 显示全部楼层
经查,iOS 版本的功能正常。安卓那部分由 pomia 来回答。

调用步骤:

1、设置 appid
2、调用第三方登录接口
3、拿到登录对应的 uid、token,错误码 0
发表于 2015-10-20 17:34:09 | 显示全部楼层
你好,非常感谢,你的帖子描述的非常详细。核对了代码,确实是android这个接口没有处理好QQ登录参数。今天会发布新版本到site上,请下载再试一下。

非常抱歉,给你的工作带来了麻烦,以后有问题请随时提问,我们会尽快解答开发者的问题。

4

主题

13

帖子

104

积分

注册会员

Rank: 2

积分
104
 楼主| 发表于 2015-10-20 17:43:16 | 显示全部楼层
Tom 发表于 2015-10-20 17:33
经查,iOS 版本的功能正常。安卓那部分由 pomia 来回答。

调用步骤:

所以,FAE告诉我的SDK工程师验证过了没问题指的是IOS版本的SDK验证了?

101

主题

330

帖子

6869

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
6869
发表于 2015-10-20 18:03:25 | 显示全部楼层
教您5分钟接入机智云,实现傻瓜式开发
楼上好文采,需要你这么有力度的吐槽,这是对机智云最大的帮助。
发表于 2015-10-20 18:28:40 | 显示全部楼层
是的。之前验证的是iOS版本,疏忽了Android版本的问题

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

加入Q群 返回顶部

© 2011-2017 Gizwits ( 粤ICP备11090211号 )

快速回复 返回顶部 返回列表