你好,歡迎來到IOS教程網

 Ios教程網 >> IOS使用技巧 >> IOS7技巧 >> Swift QQ授權登錄,並獲取個人信息(用戶資料)的例子

Swift QQ授權登錄,並獲取個人信息(用戶資料)的例子

編輯:IOS7技巧
Swift QQ授權登錄,並獲取個人信息在網頁中小編以前有做過不過現在ios開發中沒做過這裡整理了一篇不錯的教程供各位參考,如下所示。 現在很多APP或者網站都支持使用QQ帳號進行登錄。本文演示如何實現QQ的第三方登錄,以及登錄後的獲取用戶的個人信息。  

1,騰訊開放平台注冊,以及SDK的配置(這個可以官方去找)

2,登錄授權,並獲取用戶資料信息

(1)點擊“登錄並獲取用戶資料”按鈕 原文:Swift - QQ授權登錄,並獲取個人信息(用戶資料) (2)程序會自動跳轉到QQ,顯示登錄頁面(頁面上會顯示需要的授權) 原文:Swift - QQ授權登錄,並獲取個人信息(用戶資料) (3)登錄成功後又會自動返回原來的APP。本樣例中我們在登錄成功後,獲取用戶信息並打印出來 原文:Swift - QQ授權登錄,並獲取個人信息(用戶資料) 附:返回參數說明 參數名稱 描述 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)

  1. 上一頁:
  2. 下一頁:
蘋果刷機越獄教程| IOS教程問題解答| IOS技巧綜合| IOS7技巧| IOS8教程
Copyright © Ios教程網 All Rights Reserved