Closed nicknull closed 9 years ago
我们用OpenShare登录以后,获得的信息:
{
"access_token" = 427934383126190ABBE2CE79BAE07559;
encrytoken = 1c0b6ec57669ea566664f949d44f85e9;
"expires_in" = 7776000;
msg = "";
openid = 04566F19F51F1CD76169EDBC5351BA04;
"pay_token" = E5C937B566AD2CE33189EABFEF1E427E;
pf = "openmobile_ios";
pfkey = 947ff5a77691503846a81d24220c3a86;
ret = 0;
"user_cancelled" = NO;
}
比如获取用户信息的API:http://wiki.connect.qq.com/get_user_info 根据官方文档,我们需要请求:
//oauth_consumer_key是`[OpenShare connectQQWithAppId:@"1103194207"];`中的appid。
https://graph.qq.com/user/get_user_info?oauth_consumer_key=1103194207&access_token=427934383126190ABBE2CE79BAE07559&openid=04566F19F51F1CD76169EDBC5351BA04&format=json
这是一个GET请求,你可以用你熟悉的网络库来请求,服务器返回:
{
"ret": 0,
"msg": "",
"is_lost":0,
"nickname": "qzuser",
"gender": "男",
"province": "广东",
"city": "深圳",
"year": "1990",
"figureurl": "http://qzapp.qlogo.cn/qzapp/111111/942FEA70050EEAFBD4DCE2C1FC775E56/30",
"figureurl_1": "http://qzapp.qlogo.cn/qzapp/111111/942FEA70050EEAFBD4DCE2C1FC775E56/50",
"figureurl_2": "http://qzapp.qlogo.cn/qzapp/111111/942FEA70050EEAFBD4DCE2C1FC775E56/100",
"figureurl_qq_1": "http://q.qlogo.cn/qqapp/111111/942FEA70050EEAFBD4DCE2C1FC775E56/40",
"figureurl_qq_2": "http://q.qlogo.cn/qqapp/111111/942FEA70050EEAFBD4DCE2C1FC775E56/100",
"is_yellow_vip": "0",
"vip": "0",
"yellow_vip_level": "0",
"level": "0",
"is_yellow_year_vip": "0"
}
正如上面的例子,OpenShare只获得了最基本的信息,具体你想做哪些操作,还是要看官方文档的API。对于需要secret验证的API(比如修改头像),签名和验证强烈推荐放在服务器端,因为把secret放在客户端,几乎没有任何方法保证不泄漏。
返回结果正如你给出的结果 无论怎么请求都不能正常获取 昵称和头像的
这个是由于你的appid的问题。如果没有上线,可以把测试QQ添加到应用调试者
里面。或者,你可以用「唱吧」的appid(100261904)测试:
返回:
{
"ret": 0,
"msg": "",
"is_lost":0,
"nickname": "文库专家",
"gender": "男",
"province": "上海",
"city": "黄浦",
"year": "1993",
"figureurl": "http:\/\/qzapp.qlogo.cn\/qzapp\/100261904\/9BEA07AD04306CFE1489904D55A09B49\/30",
"figureurl_1": "http:\/\/qzapp.qlogo.cn\/qzapp\/100261904\/9BEA07AD04306CFE1489904D55A09B49\/50",
"figureurl_2": "http:\/\/qzapp.qlogo.cn\/qzapp\/100261904\/9BEA07AD04306CFE1489904D55A09B49\/100",
"figureurl_qq_1": "http:\/\/q.qlogo.cn\/qqapp\/100261904\/9BEA07AD04306CFE1489904D55A09B49\/40",
"figureurl_qq_2": "http:\/\/q.qlogo.cn\/qqapp\/100261904\/9BEA07AD04306CFE1489904D55A09B49\/100",
"is_yellow_vip": "0",
"vip": "0",
"yellow_vip_level": "0",
"level": "0",
"is_yellow_year_vip": "0"
}
为了调试方便,你可以用:
[auth addEventHandler:^(id sender) {
[OpenShare QQAuth:@"get_user_info" Success:^(NSDictionary *message) {
ULog(@"QQ登录成功\n%@",message);
NSLog(@"%@",message);
NSString *url=[NSString stringWithFormat: @"https://graph.qq.com/user/get_user_info?oauth_consumer_key=100261904&access_token=%@&openid=%@&format=json",message[@"access_token"],message[@"openid"]];
NSLog(@"url: %@\n%@",url,[NSJSONSerialization JSONObjectWithData:[NSData dataWithContentsOfURL:[NSURL URLWithString:url]] options:NSJSONReadingAllowFragments error:nil]);
} Fail:^(NSDictionary *message, NSError *error) {
ULog(@"QQ登录失败\n%@\n%@",error,message);
}];
} forControlEvents:UIControlEventTouchUpInside];
明白了 这个要求必须同时是网页应用 并且审核通过才能获取 已经在审核了 希望能通过
谢谢回复
腾讯的这个开放平台,坑真不少。@nicknull 可以记录一下,等都弄好了,来跟我们分享一下。
腾讯确实坑 等弄好了 把 微信 微博 qq的登录大坑总结下 再分享吧 哈哈
根据以下方法 我用在这个项目中 [auth addEventHandler:^(id sender) { [OpenShare QQAuth:@"get_user_info" Success:^(NSDictionary *message) { ULog(@"QQ登录成功\n%@",message); NSLog(@"%@",message);
NSString *url=[NSString stringWithFormat: @"https://graph.qq.com/user/get_user_info?oauth_consumer_key=1103194207&access_token=%@&openid=%@&format=json",message[@"access_token"],message[@"openid"]];
NSLog(@"url: %@\n%@",url,[NSJSONSerialization JSONObjectWithData:[NSData dataWithContentsOfURL:[NSURL URLWithString:url]] options:NSJSONReadingAllowFragments error:nil]);
} Fail:^(NSDictionary *message, NSError *error) {
ULog(@"QQ登录失败\n%@\n%@",error,message);
}];
} forControlEvents:UIControlEventTouchUpInside];
获取的数据是 { "ret": 0, "msg": "", "is_lost":0, "nickname": "qzuser", "gender": "男", "province": "广东", "city": "深圳", "year": "1990", "figureurl": "http://qzapp.qlogo.cn/qzapp/111111/942FEA70050EEAFBD4DCE2C1FC775E56/30", "figureurl_1": "http://qzapp.qlogo.cn/qzapp/111111/942FEA70050EEAFBD4DCE2C1FC775E56/50", "figureurl_2": "http://qzapp.qlogo.cn/qzapp/111111/942FEA70050EEAFBD4DCE2C1FC775E56/100", "figureurl_qq_1": "http://q.qlogo.cn/qqapp/111111/942FEA70050EEAFBD4DCE2C1FC775E56/40", "figureurl_qq_2": "http://q.qlogo.cn/qqapp/111111/942FEA70050EEAFBD4DCE2C1FC775E56/100", "is_yellow_vip": "0", "vip": "0", "yellow_vip_level": "0", "level": "0", "is_yellow_year_vip": "0" }
这里有个疑问 我在自己的项目中也是 "nickname": "qzuser" 貌似这个接口返回给我的数据都是模拟数据一样 并不是我真实用户的信息 这是什么情况 有谁知道吗
对于我那个问题我发现一个很有意思的东西 以下是腾讯开放平台问答地址http://wiki.open.qq.com/wiki/%E3%80%90QQ%E7%99%BB%E5%BD%95%E3%80%91FAQ#20._.E4.BD.BF.E7.94.A8API.E8.8E.B7.E5.8F.96.E7.94.A8.E6.88.B7.E6.98.B5.E7.A7.B0.E6.97.B6.E8.BF.94.E5.9B.9E.E2.80.9Cqzuser.E2.80.9D.E6.98.AF.E6.80.8E.E4.B9.88.E5.9B.9E.E4.BA.8B.EF.BC.9F
在腾讯开发平台中有这么一段问答
然后我跳转到了qq互联竟然发现这里也需要申请app qq互联申请app 图 我以在腾讯开放平台申请了app 图
难道竟然要在两个平台上都要申请app才能获取有效的用户信息吗?待我验证
大兄弟,验证完了吗, 我也遇到相同的问题, 找客户直接把我挂断了。。。 @iStig
@domingoxx 我验证过qq互联 和 腾讯开放平台都申请app 但仍旧不行 。还需要在另一个平台也注册
唉,大兄弟加油, 我按照上面那个兄弟说的, 在去申请一个网页版的应用试试 @iStig
@iStig @domingoxx 我也和两位碰到了同样的问题,请问最后是怎么解决的呢?
[OpenShare QQAuth:@"get_user_info" Success:^( 貌似目前只能获取用户的openid 至于用户的 昵称头像获取不到啊
“get_user_info”也获取不到