获取用户信息
目录[隐藏] |
1. Tencent类的request或requestAsync接口简介
在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内部不访问该对象。 |
2. 获取用户信息
2.1 异步方式调用
public void getUserInfo()
{
mTencent.requestAsync(Constants.GRAPH_SIMPLE_USER_INFO, null,
Constants.HTTP_GET, new BaseApiListener("get_simple_userinfo", false),
null);
}
2.2 同步方式调用
注意:由于同步调用直接访问网络,是延时性操作,需要放入线程中执行。
同步调用方式如下:
public void getUserInfoInThread()
{
new Thread(){
@Override
public void run() {
JSONObject json = mTencent.request(Constants.GRAPH_SIMPLE_USER_INFO, null, Constants.HTTP_GET);
System.out.println(json);
}
}.start();
}
3. 用户信息详情
{
"is_yellow_year_vip": "0",
"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": "小罗",
"yellow_vip_level": "0",
"msg": "",
"figureurl_1":
"http://qzapp.qlogo.cn/qzapp/222222/8C75BBE3DC6B0E9A64BD31449A3C8CB0/50",
"vip": "0",
"level": "0",
"figureurl_2":
"http://qzapp.qlogo.cn/qzapp/222222/8C75BBE3DC6B0E9A64BD31449A3C8CB0/100",
"is_yellow_vip": "0",
"gender": "男",
"figureurl":
"http://qzapp.qlogo.cn/qzapp/222222/8C75BBE3DC6B0E9A64BD31449A3C8CB0/30"
}