Swift QQ授权登录,并获取个人信息(用户资料)的例子

现在很多APP或者网站都支持使用QQ帐号进行登录。本文演示如何实现QQ的第三方登录,以及登录后的获取用户的个人信息。

 

1,腾讯开放平台注册,以及SDK的配置(这个可以官方去找)

2,登录授权,并获取用户资料信息

(1)点击“登录并获取用户资料”按钮

(2)程序会自动跳转到QQ,显示登录页面(页面上会显示需要的授权)

(3)登录成功后又会自动返回原来的APP。本样例中我们在登录成功后,获取用户信息并打印出来

附:返回参数说明

参数名称 描述
ret 返回码。详见公共返回码说明#OpenAPI V3.0 返回码。
msg 如果错误,返回错误信息。
is_lost 判断是否有数据丢失。如果应用不使用cache,不需要关心此参数。

0或者不返回:没有数据丢失,可以缓存。
1:有部分数据丢失或错误,不要缓存。

nickname 昵称。
gender 性别。
country 国家(当pf=qzone、pengyou或qplus时返回)。
province 省(当pf=qzone、pengyou或qplus时返回)。
city 市(当pf=qzone、pengyou或qplus时返回)。
figureurl 头像URL。详见:前端页面规范#6. 关于用户头像的获取和尺寸说明。
openid 用户QQ号码转化得到的ID(当pf=qplus时返回)。
qq_level 用户QQ等级(当pf=qplus时返回)。
qq_vip_level 用户QQ会员等级(当pf=qplus时返回)。
qplus_level 用户Q+等级(当pf=qplus时返回)。
is_yellow_vip 是否为黄钻用户(0:不是; 1:是)。

(当pf=qzone、pengyou或qplus时返回)

is_yellow_year_vip 是否为年费黄钻用户(0:不是; 1:是)。

(当pf=qzone、pengyou或qplus时返回)

yellow_vip_level 黄钻等级,目前最高级别为黄钻8级(如果是黄钻用户才返回此参数)。

(当pf=qzone、pengyou或qplus时返回)

is_yellow_high_vip 是否为豪华版黄钻用户(0:不是; 1:是)。

(当pf=qzone、pengyou或qplus时返回)

is_blue_vip 是否为蓝钻用户(0:不是; 1:是)。

(当pf=qqgame或3366时返回)

is_blue_year_vip 是否为年费蓝钻用户(0:不是; 1:是)。

(当pf=qqgame或3366时返回)

blue_vip_level 蓝钻等级(如果是蓝钻用户才返回此参数)。

(当pf=qqgame或3366时返回)

3366_level 3366用户的大等级。

(当pf=3366时返回)

3366_level_name 3366用户的等级名,如小游游、小游仙。

(当pf=3366时返回)

3366_grow_level 3366用户的成长等级。

(当pf=3366时返回)

3366_grow_value 3366用户的成长值。

(当pf=3366时返回)

is_super_blue_vip 是否是豪华蓝钻。

(当pf=qqgame或3366时返回)

(4)样例代码:

import UIKit
 
class ViewController: UIViewController, TencentSessionDelegate{
     
    var _tencentOAuth:TencentOAuth!
     
    override func viewDidLoad() {
        super.viewDidLoad()
         
        _tencentOAuth = TencentOAuth.init(appId: "1105212016", andDelegate: self)
    }
     
    //登录按钮点击
    @IBAction func login(sender: AnyObject) {
        //设置权限列表
        let permissions = ["get_user_info","get_simple_userinfo"];
        //登陆
        _tencentOAuth.authorize(permissions)
    }
     
    //登陆完成调用
    func tencentDidLogin() {
        if !_tencentOAuth.accessToken.isEmpty {
            print("----------------------------------------")
            print("登录成功!")
            print("openId:\(_tencentOAuth.openId)",
                "accessToken:\(_tencentOAuth.accessToken)",
                "expirationDate:\(_tencentOAuth.expirationDate)")
            print("开始获取用户资料")
            _tencentOAuth.getUserInfo()
        }else {
            print("登录失败!没有获取到accessToken")
        }
    }
     
    /**
    * 登录失败后的回调
    */
    func tencentDidNotLogin(cancelled:Bool) {
        if cancelled {
             print("用户取消登录!")
        }else{
             print("登录失败!")
        }
    }
     
    /**
    * 登录时网络有问题的回调
    */
    func tencentDidNotNetWork() {
        print("没有网络,无法登录!")
    }
     
    /**
     * 取得用户信息的回调
     */
    func getUserInfoResponse(response:APIResponse) {
        print("----------------------------------------")
        print("用户资料获取成功:")
        print(response.jsonResponse)
    }
     
    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
    }
}

3,退出登录

要退出登录、取消授权。只需要调用 TencentOAuth 对象的 logout() 方法即可。

_tencentOAuth.logout(self)

时间: 2024-09-28 14:59:23

Swift QQ授权登录,并获取个人信息(用户资料)的例子的相关文章

后台-第三方授权登录就是获取从第三方获取到用户信息,然后再注册一个账户?

问题描述 第三方授权登录就是获取从第三方获取到用户信息,然后再注册一个账户? 第三方授权登录就是获取从第三方获取到用户信息,然后再注册一个账户? 比如微信授权 知乎,就是获取用户在微信注册的信息,然后用这些信息在知乎上自动注册一个新用户? 是这个原理吗?这样整个授权过程就没后台什么事了,对吧? 解决方案 没有问题......... 解决方案二: 应该是....... 解决方案三: 一.完全的第三方授权登录是本系统不需要账号的,就用第三方提供的账号. 二.在本系统已经有账号管理的前提下,再附加第三

QQ营销:如何获取精准定向用户(一)

中介交易 http://www.aliyun.com/zixun/aggregation/6858.html">SEO诊断 淘宝客 云主机 技术大厅 关于QQ营销,在之前已经和大家多次分享过,但是,在群里面还有朋友说,无法找到精准的用户,尤其是在腾讯规则更改之后,QQ泛好友.QQ信封的价值越来越有限,相反,QQ精准用户的价值越来越高,接下来,和大家分享几个能够快速找到精准用户的方式以及如何加入到数据库. 相关文章推荐 腾讯规则更改对于淘宝客的影响(一) 选择收集目标用户 一般来说,花精力去

android开发-安卓qq接入登录可以获得qq号码吗?

问题描述 安卓qq接入登录可以获得qq号码吗? 安卓qq接入登录后获取信息,可以获得qq号码吗?求助,急急急急急急 解决方案 第三方qq登录 安卓开发 解决方案二: 能获取昵称.........

怎么实现QQ的登录?当然是已知QQ号和密码

问题描述 比如可以自动登录到QQ空间,并获取一些信息 解决方案 解决方案二:httpwebrequest模拟解决方案三:引用1楼diaodiaop的回复: httpwebrequest模拟 同学人家说的是登录不是打开相应的QQ页面解决方案四:貌似要把密码用MD5加完密才能进行登录操作?解决方案五:不行了吧,以前还有登录的集成,现在都是OAuth2.0了,本地根本不存用户密码了你问问腾讯有没有相应的接口吧解决方案六:QQ密码加密后,是不可逆的,楼主参考下这个程序!解决方案七: 解决方案八:引用5楼

有道云笔记我已经用第三方授权登录过了怎么直接输入账号没有内容?

  如果您是使用qq授权方式注册的,您需要每次都通过点击qq授权登录进行登录.Qq授权登录与qq邮箱直接登录是两个不同的账号,笔记不会关联账号.

python实现根据用户输入从电影网站获取影片信息的方法_python

本文实例讲述了python实现根据用户输入从电影网站获取影片信息的方法.分享给大家供大家参考.具体如下: 这段python代码主要演示了用户终端输入,正则表达式,网页抓取等 #!/usr/bin/env python27 #Importing the modules from BeautifulSoup import BeautifulSoup import sys import urllib2 import re import json #Ask for movie title title =

郭吉军:“QQ一键登录”简化用户操作 提高社区黏度

中介交易 http://www.aliyun.com/zixun/aggregation/6858.html">SEO诊断 淘宝客 云主机 技术大厅 12月16日消息,腾讯公司全资收购康盛discuz,曾在中小站长群轰动一时.论坛社区程序Discuz与腾讯的聊天工具如何整合,业界一直密切关注.近期,腾讯推出首个基于Discuz的应用程序"QQ一键登录"已经开始内测.包括康盛创想官方论坛(discuz.net).雨林木风论坛(ylmf.net).落伍者(im286.com

登录 授权 第三方帐号-QQ授权登陆后,网站如何提取QQ号,QQ邮箱信息?

问题描述 QQ授权登陆后,网站如何提取QQ号,QQ邮箱信息? QQ授权登陆后,网站如何提取QQ号,QQ邮箱信息,用来新注册一个帐号 解决方案 这2个获取不到,只能获取"昵称.头像.性别 ",QQ会员的基本信息 ,QQ会员的高级信息,获取用户QQ空间相册列表等信息需要申请. 看这个:http://wiki.open.qq.com/wiki/website/API%E5%88%97%E8%A1%A8 解决方案二: 与这个QQ对应的唯一标识就是openid,你可以再让用户补全其他信息 解决方

Android实现第三方授权登录、分享以及获取用户资料_Android

由于公司项目的需要,要实现在项目中使用第三方授权登录以及分享文字和图片等这样的效果,几经波折,查阅了一番资料,做了一个Demo.实现起来的效果还是不错的,不敢独享,决定写一个总结的教程,供大家互相交流.学习和参考,只求能和大家共同进步.希望能多多支持! 这篇文章中,我们使用到了Share SDK,它是为iOS.Android.WP8的APP提供社会化功能的一个组件,目前支持如QQ.微信.新浪微博.腾讯微博.开心网.人人网.豆瓣.网易微博.搜狐微博.facebook.twitter.google+