tencent API(三) 接收,解析个人信息
?
private static final String GRAPH_SIMPLE_USER_INFO = "user/get_user_info"; /** * 用户信息 */ private void onClickUserInfo() { if (ready()) { BaseApiListener requestListener=new BaseApiListener("get_user_info", false); Bundle params = composeCGIParams(); mTencent.requestAsync(GRAPH_SIMPLE_USER_INFO, params, Constants.HTTP_GET, requestListener, null); mProgressDialog.show(); } }
?
?
在SDK中,有一些功能接口,如登录,分享消息到QQ等,SDK对其调用单独封装成了独立的接口;但是,SDK中的另外一些接口,如获取用户信息、获取用户相册列表、发送分享(addshare)、发表说说、上传图片、创建相册等,则被统一封装在Tencent类的request或requestAsync方法中,通过传入不同的参数实现不同的接口调用。request和requestAsync这两个接口的功能相同
获取用户信息有两种方式:同步方式和异步方式
request(String graphPath, Bundle params, String httpMethod) 发送同步调用请求访问腾讯提供的OpenAPI。
requestAsync(String graphPath, Bundle params, String httpMethod, IRequestListener listener, Object state) 发送异步调用请求访问腾讯提供的OpenAPI。
?
先看下参数说明:
参数参数说明graphPath要调用的接口名称,通过SDK中的Constant类获取宏定义。params以K-V组合的字符串参数。Params是一个Bundle类型的参数,里面以键值对(Key-value)的形式存储数据,应用传入的邀请分享等参数就是通过这种方式传递给SDK,然后由SDK发送到后台。httpMethod使用的http方式,如Constants.HTTP_GET,Constants.HTTP_POST。listener回调接口,IUiListener实例。state状态对象,将在回调时原样传回给 listener,供应用识别异步调用。SDK内部不访问该对象。?
?
接收到的个人信息如下:
?
{ "is_yellow_year_vip": "0",是否为年费黄钻用户(0:不是; 1:是)
?
"ret": 0,// "figureurl_qq_1": "http://q.qlogo.cn/qqapp/222222/8C75BBE3DC6B0E9A64BD31449A3C8CB0/40", "figureurl_qq_2": "http://q.qlogo.cn/qqapp/222222/8C75BBE3DC6B0E9A64BD31449A3C8CB0/100", "nickname": "AMB",//昵称 "yellow_vip_level": "0",//黄钻等级 "msg": "", "figureurl_1": "http://qzapp.qlogo.cn/qzapp/222222/8C75BBE3DC6B0E9A64BD31449A3C8CB0/50", "vip": "0",//开了几个vip "level": "0",//等级 "figureurl_2": "http://qzapp.qlogo.cn/qzapp/222222/8C75BBE3DC6B0E9A64BD31449A3C8CB0/100", "is_yellow_vip": "0",是否为黄钻用户(0:不是; 1:是)。 "gender": "男",//性别 "figureurl": "http://qzapp.qlogo.cn/qzapp/222222/8C75BBE3DC6B0E9A64BD31449A3C8CB0/30"}
?一般通常有以下情况
int ret; int is_lost;// 判断是否有数据丢失。如果应用不使用cache,不需要关心此参数。 0或者不返回:没有数据丢失,可以缓存。 1:有部分数据丢失或错误,不要缓存。 PXStringA nickname;// 昵称 PXStringA gender;// 性别 PXStringA country;// 国家(当pf=qzone、pengyou或qplus时返回) PXStringA province;// 省(当pf=qzone、pengyou或qplus时返回) PXStringA city;//市(当pf=qzone、pengyou或qplus时返回) PXStringA figureurl;//头像URL int is_yellow_vip;// 是否为黄钻用户(0:不是; 1:是)。 int is_yellow_year_vip;// 是否为年费黄钻用户(0:不是; 1:是)。 int yellow_vip_level;// 黄钻等级,目前最高级别为黄钻8级(如果是黄钻用户才返回此参数)。 int is_yellow_high_vip;// 是否为豪华版黄钻用户(0:不是; 1:是)。 int is_blue_vip;// 是否为蓝钻用户(0:不是; 1:是)。 int is_blue_year_vip;// 是否为年费蓝钻用户(0:不是; 1:是)。 int blue_vip_level;// 蓝钻等级(如果是蓝钻用户才返回此参数)。 int is_super_blue_vip;// 是否是豪华蓝钻。(当pf=qqgame或3366时返回) TencentUserInfo_T() { ret =0; is_lost = 0; is_yellow_vip =0; is_yellow_year_vip=0; yellow_vip_level=0; is_yellow_high_vip=0; is_blue_vip = 0; is_blue_year_vip = 0; blue_vip_level = 0; is_super_blue_vip = 0; }
?