一 . 获取qq第三方登录一般需要的有三点:
1.获取认证
2.获取用户信息
3.授权登录
二. 获取用户信息的参数值:
kOPEN_PERMISSION_GET_SIMPLE_USER_INFO 移动端获取用户信息
kOPEN_PERMISSION_GET_INFO 获取用户的详细信息
其中需要的是在授权的时候就需要知道你所需要的用户信息,先设置你需要的用户信息,然后再去进行授权:
NSArray* permissions = [NSArray arrayWithObjects: kOPEN_PERMISSION_GET_USER_INFO,kOPEN_PERMISSION_GET_SIMPLE_USER_INFO,
kOPEN_PERMISSION_ADD_SHARE,nil];
TencentOAuth *_tencentOAuth = [TencentOAuth initWithAppid:appid andDelegate:delegate];
[_tencentOAuth authorize:permissions inSafari:NO];
授权又有几种情况:成功,失败,网络问题
其中代理方法为:
- (void)tencentDidLogin; // 登录成功后的回调
- (void)tencentDidNotLogin:(BOOL)cancelled; // 登录失败后的回调
- (void)tencentDidNotNetWork; // 登录时网络有问题的回调
登录成功后需要获取的信息的代理方法:
- (NSArray *)getAuthorizedPermissions:(NSArray *)permissions withExtraParams:(NSDictionary *)extraParams;//权限信息
获取到的信息:
city = "\U90d1\U5dde"; 城市
figureurl = "http://qzapp.qlogo.cn/qzapp/1105213920/B6CA40B16870D6E578E1B6C2F76CFF7F/30";头像
"figureurl_1" = "http://qzapp.qlogo.cn/qzapp/1105213920/B6CA40B16870D6E578E1B6C2F76CFF7F/50";
"figureurl_2" = "http://qzapp.qlogo.cn/qzapp/1105213920/B6CA40B16870D6E578E1B6C2F76CFF7F/100";
"figureurl_qq_1" = "http://q.qlogo.cn/qqapp/1105213920/B6CA40B16870D6E578E1B6C2F76CFF7F/40";另外一个头像
"figureurl_qq_2" = "http://q.qlogo.cn/qqapp/1105213920/B6CA40B16870D6E578E1B6C2F76CFF7F/100";
gender = "\U7537";性别
"is_lost" = 0; 判断是否有数据丢失 0或者不返回:没有数据丢失,可以缓存。1:有部分数据丢失或错误,不要缓存。
"is_yellow_vip" = 0;
"is_yellow_year_vip" = 0;
level = 0;
msg = "";
nickname = "\U9738\U5929";昵称
province = "\U6cb3\U5357";省份
ret = 0;
vip = 0;
"yellow_vip_level" = 0;
"access_token" = 69FBBA6DD6A51003F73B17C2D647B628; 授权令牌,Access_Token。
encrytoken = 131f1afd0a4be690639c32f081b3e6fe;
"expires_in" = 7776000; 该access token的有效期,单位为秒
msg = "";
openid = B6CA40B16870D6E578E1B6C2F76CFF7F; 每一个QQ号的唯一标识
"pay_token" = DA60D44EC7B36A8AC7AC4A8E7E36511E;
pf = "openmobile_ios"; 标识开通的黄钻类型。
pfkey = af7d97a97a6218fc1bcacf232f65f939; 跳转到应用首页后,URL后会带该参数。由平台直接传给应用,应用原样传给平台即可。
表示平台的信息加密串,根据openid,openkey,pf,appid等生成。
ret = 0;
"user_cancelled" = NO;
登录成功后的回调方法拿到openID:
#pragma mark -- TencentSessionDelegate
//登陆完成调用
- (void)tencentDidLogin
{
if (tencentOAuth.accessToken && 0 != [tencentOAuth.accessToken length])
{
// 记录登录用户的OpenID、Token以及过期时间
NSLog(@"记录登录用户的OpenID、Token以及过期时间");
NSLog(@"%@",tencentOAuth.openId);
NSLog(@"%@",tencentOAuth.expirationDate);
[tencentOAuth getUserInfo];
}
else
{
NSLog(@"登录不成功没有获取accesstoken");
}
}
回调方法拿到用户的详细信息:
-(void)getUserInfoResponse:(APIResponse *)response
{
NSLog(@"respons:%@",response.jsonResponse);
}
2028

被折叠的 条评论
为什么被折叠?



