|
近日老板让我修改APP,其中有增加这个第三方登录的任务,曾经,我折腾过机智云所有API,除了这个第三方登录,没想到第一次上手就栽了,正如群主卓玛曾经说的,我技术不够,也不能碰到问题就找别人,要自己钻研
- 具体问题是这样的:
- public void userLoginWithThirdAccountType(XPGWifiSDK.XPGWifiThirdAccountType thirdAccountType, String uid, String token)
复制代码 这个是协议的第三方登录接口,现在来看看第一个参数:- public static enum XPGWifiThirdAccountType {
- XPGWifiThirdAccountTypeBAIDU,
- XPGWifiThirdAccountTypeSINA,
- XPGWifiThirdAccountTypeQQ;
- private XPGWifiThirdAccountType() {
- }
- }
复制代码 上面的代码是sdk内部代码,由上可知,QQ的登录类型值为2 - 第二第三个参数分别为QQ认证成功之后获取到的,QQ认证也有回调,因而我可以确定QQ认证的确是成功了,而且能够正常获取到ipenid和token,日志为证:
- 10-20 16:20:26.241 D/Snlion-mc(12256): ===== 1445329226---mcLoginActivity---onComplete---...QQ认证...OK---uid: 22519DFC3089CE06A36C55456B11B768 Token: 9B21DFE87EC1397113E0352E1859B439 =====
复制代码 以上日志是在QQ回调成功函数里面输出的 - 我相信卓玛副总裁说的是对的,问题一定出在我这里,我对后面两个参数进行了“各种各样的”转换,也许有人会问,就一个字符串,能有什么“各种各样的转换”,说实话,我也忘掉了我都做过哪些愚蠢的转换,结果当然还是失败的,就这么一个接口,就三个参数,回调也有,只是回调的结果不如人意而已,回调还是完完整整的执行了嘛,所以,问题一定出在调用那里,一定出在那三个参数那里,后面两个参数,无论我做过何种愚蠢的转换,它们的值还是它们应该等于的值(字符串的本性不能改变),所以现在,请允许我暂时忽略这两个参数,请允许我暂时怀疑一下第一个参数的问题,或者那个接口的问题,跟踪一下这个接口:
- public void userLoginWithThirdAccountType(XPGWifiSDK.XPGWifiThirdAccountType thirdAccountType, String uid, String token) {
- boolean accountType = false;
- byte accountType1;
- if(XPGWifiSDK.XPGWifiThirdAccountType.XPGWifiThirdAccountTypeSINA == thirdAccountType) {
- accountType1 = 1;
- } else {
- accountType1 = 0;
- }
- GWifiSDK.sharedInstance().RegisterThirdAccountUser(accountType1, uid, token);
- }
复制代码 这是SDK里面的原原本本的代码,位于XPGWifiSDK.class里面,还记得前面我特别点明的,QQ的登录类型值为2.。。。观察一下代码,QQ的类型值被按照0来处理的,回头看一下0,0是BAIDU,没错,你没看错,就是度娘,然后我就开始怀疑了,QQ跟度娘在云的业务上有合作?我不信。。。所以,我直接用了上面代码的最后一句:- GWifiSDK.sharedInstance().RegisterThirdAccountUser(2, uid, token);
复制代码 没错,我直接给了accounttype1为2,后面两个是局部变量,至于为什么我用的局部变量跟SDK里面的形式变量同名?嗯。。。巧合!!下面是现在的日志输出- 10-20 16:14:48.121 I/xpgc (12256): 16:14:48 HTTP request will Send http body
- 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:机智云的技术支持一直都让我非常非常的满意!!!感谢!!!
|
|