GithubHelp home page GithubHelp logo

怎么获取QQ用户信息 about openshare HOT 12 CLOSED

100apps avatar 100apps commented on July 19, 2024
怎么获取QQ用户信息

from openshare.

Comments (12)

100apps avatar 100apps commented on July 19, 2024

我们用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放在客户端,几乎没有任何方法保证不泄漏。

from openshare.

nicknull avatar nicknull commented on July 19, 2024

返回结果正如你给出的结果 无论怎么请求都不能正常获取 昵称和头像的

from openshare.

100apps avatar 100apps commented on July 19, 2024

这个是由于你的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];

from openshare.

nicknull avatar nicknull commented on July 19, 2024

明白了 这个要求必须同时是网页应用 并且审核通过才能获取 已经在审核了 希望能通过
谢谢回复

from openshare.

100apps avatar 100apps commented on July 19, 2024

腾讯的这个开放平台,坑真不少。@nicknull 可以记录一下,等都弄好了,来跟我们分享一下。

from openshare.

nicknull avatar nicknull commented on July 19, 2024

腾讯确实坑 等弄好了 把 微信 微博 qq的登录大坑总结下 再分享吧 哈哈

from openshare.

iStig avatar iStig commented on July 19, 2024

根据以下方法 我用在这个项目中
[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" 貌似这个接口返回给我的数据都是模拟数据一样 并不是我真实用户的信息 这是什么情况 有谁知道吗

from openshare.

iStig avatar iStig commented on July 19, 2024

对于我那个问题我发现一个很有意思的东西
以下是腾讯开放平台问答地址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

在腾讯开发平台中有这么一段问答
20. 使用API获取用户昵称时返回“qzuser”是怎么回事?
可能是所使用的API没有激活,可以到管理中心的控制台查看已激活API列表中是否有该API。
也可能是用户使用qq登录时跳过了授权步骤。

然后我跳转到了qq互联竟然发现这里也需要申请app
qq互联申请app

我以在腾讯开放平台申请了app

难道竟然要在两个平台上都要申请app才能获取有效的用户信息吗?待我验证

from openshare.

domingoxx avatar domingoxx commented on July 19, 2024

大兄弟,验证完了吗, 我也遇到相同的问题, 找客户直接把我挂断了。。。 @iStig

from openshare.

iStig avatar iStig commented on July 19, 2024

@domingoxx 我验证过qq互联 和 腾讯开放平台都申请app 但仍旧不行 。还需要在另一个平台也注册

from openshare.

domingoxx avatar domingoxx commented on July 19, 2024

唉,大兄弟加油, 我按照上面那个兄弟说的, 在去申请一个网页版的应用试试 @iStig

from openshare.

taooba avatar taooba commented on July 19, 2024

@iStig @domingoxx 我也和两位碰到了同样的问题,请问最后是怎么解决的呢?

from openshare.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.