实现app第三方QQ授权登录

关于QQ授权登录的实现,官网有详细描述,点击链接 。

这里根据自己的实现过程简单介绍一下整个过程:

1. 注册成为开发者,创建应用,获取appid,这个appid后面要用到。详情步骤请查看官网链接

2. 在你的Android工程中导入SDK库文件 open_sdk.jar    (SDK V1.5 下载地址:点击这里,需要2分,没分的朋友可以到我空间的资源中下载)

3. 配置AndroidManifest

    申请权限,加入appid,声明SDK中的activity

4. 创建Tencent类实例,实现回调接口IUiListener,IRequestListener

5. 调用QQ登录接口 

     调用Tencent.login(this, Scope, listener)

     其中listener是IUiListener接口,在登录成功后会调用onComplete回调,返回类似下面格式的JSONObject对象:

{
"ret":0,   //表示登录成功
"pay_token":"xxxxxxxxxxxxxxxx",
"pf":"openmobile_android",
"expires_in":"7776000",
"openid":"xxxxxxxxxxxxxxxxxxx",
"pfkey":"xxxxxxxxxxxxxxxxxxx",
"msg":"sucess",
"access_token":"xxxxxxxxxxxxxxxxxxxxx"
}


6. 获取用户信息

    在登录成功后,调用如下接口获取用户信息,此时的listener是IRequestListener接口

    Tencent.requestAsync(Constants.GRAPH_SIMPLE_USER_INFO, null, Constants.HTTP_GET, 
new BaseApiListener("get_simple_userinfo", false), EVENT_GET_USER_INFO)


    获取成功后SDK会调用IRequestListener的onComplete回调,返回类似下面的JSON数据

    {
"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"
}


到这里已经基本完成了QQ授权登录。


有几个问题还需要注意:

1.appid的有效性

  应用要上线并且通过审核后,使用的appid才可以正常进行QQ授权,否则只有你注册的QQ号可以成功授权登录,换其他QQ号登录时授权会失败。

  解决办法:

  a.应用申请上线,不过有的应用需要提供软件著作权

  b.设置协作者账号(点击官网说明,默认情况是注册的QQ为协作者帐号,可以添加多个)

  c.使用官网给的测试用的appid(222222)


2.没有调用回调

如果发生这种情况,检查一下这一条:

应用调用Andriod_SDK接口时,如果要成功接收到回调,需要在调用接口的Activity的onActivityResult方法中增加如下代码:
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
mTencent.onActivityResult(requestCode, resultCode, data);
}

  • 2
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值