调试API接口的利器——获取返回数据中的信息提示字段
1 调试腾讯开放平台QQ登录API
最近博主在测试腾讯开放平台的QQ登录API时,遇到了一个棘手问题。根据腾讯官方API文档,vfhky写了一个调用 get_info 接口的程序。该接口能够获取QQ登录用户的微博信息,例如用户的出身日期、教育信息、FANS数目、微博内容等。具体大家也可以看看官方给出的API接口信息,地址是 http://wiki.connect.qq.com/get_info。
2 调用 get_info 接口的程序
根据OAuth2.0协议,很容易写出调用get_info接口的程序,下面是vfhky测试程序的部分代码。由于还是在测试阶段,所以在好几API的调用代码段中都对返回数据是否合法加以判断。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 |
|
3 DEBUG无任何结果
结果很郁闷的是:无论如何debug,总是一片空白,无法在前台显示对应的数据。上周末问了腾讯开放平台的工作人员,仍没得到结果。说是技术支持人员不是,让我上官方论坛提问。结果一上论坛,小伙伴们惊得目瞪口呆,广告和僵尸问题几乎占满了所有帖子。这场景让我想起了前几年的动易论坛,不知现在怎么样了……好吧,有问题还得自己扛住!
晚上回来仔细再琢磨了下API文档,发现返回的数据可能是xml格式也可能是json格式的,那么上面的程序应该也没错。问题出在哪呢?无意间,突然注意到了“错误返回示例”中提到了一个“msg”字段,对应的数据表示数据返回的信息提示。于是,立马,把上面的第3个步骤改成。
echo "[生日:]". $getuser_info_results->msg;
4 曙光:获取返回数据中的信息提示字段
结果终于出来了,如上图所示。提示信息为“this api without user authorization”,意思是“该API接口没有取得用户授权”。估计是由于先前在获取Authorization Code时,没有加入scope授权列表字段造成的。虽然说问题暂时还没解决,但是一个错误提示让博主看到了希望!激动不已,是以速成该文。所以在大家测试API接口的时候,千万不要忘了这把利器——获取返回数据中的信息提示字段!
Comments »