一步一步实现iOS QQ第三方登录

iOS开发之第三方登录QQ -- 史上最全最新第三方登录QQ方式实现 项目地址 :  https://github.com/zhonggaorong/QQLoginDemo/tree/master 最新版本的qq登录实现步骤实现: 1. 首先,你需要去向腾讯申请账号。 地址:点击打开链接 2. 下载最新的SDK   地址: SDK下载 SDK内容如下: 1. doc: 为说明文档, 方法参数说明。 2.sample 这个是简单的demo 阅读详情

一步一步实现iOS QQ第三方登录

字数1236  阅读167  评论6 

前言

最近在公司应用中集成QQ登录的时候遇到一些波折(坑点),觉得还是有必要记录一下.

一.集成SDK

1.集成官方Framework

首先下载官网SDK iOS_SDK下载,目前来说最新的包是V3.1.0,下载完解压后你会看到


iOS_SDK.png
  • TencentOpenAPI.framework打包了iOS SDK的头文件定义和具体实现
  • TencentOpenApi_iOS_Bundle.bundle 打包了iOS SDK需要的资源文件
    然后将这两个文件拖入到工程中.

2.Cocoapods集成方式

除了导入官方Framework的方式,还有一种方式是集成Pods方式:TencentOpenApiSDK目前我用的版本是2.9.5.
我用的方式是Cocoapods集成的方式.如何选择请根据自身情况做出决定.

二.配置工程

1.添加SDK依赖的系统库文件

此外还需要导入一些库分别是“Security.framework”,“libiconv.dylib”,“SystemConfiguration.framework”,“CoreGraphics.Framework”、“libsqlite3.dylib”、“CoreTelephony.framework”、“libstdc++.dylib”、“libz.dylib”

在Xcode中打开工程配置文件,选择“general”一栏,在最下面找到"Linked Framewords and Libraries"选项点击下面添加按钮添加上面的库即可.


ImporFrameworks.png

2. 修改必要的工程配置属性。

在工程配置中的“Build Settings”一栏中找到“Linking”配置区,给“Other Linker Flags”配置项添加属性值“-fobjc-arc”


Build Settings.png

3.Info.Plist设置

在工程配置中的"Info"中找到"URL Types",添加一条新的“URL scheme”.
注意:

Identifier: tencentopenapi
URL Schemes: tencent + appid

其中Identifier 和URL Schemes是必填项,Identifier是tencentopenapi,URL Schemes是tencent加上你在官网申请的appid.
申请APPID


info.png

你以为到了这步就完了吗,NO NO NO 要想实现点击之后跳转到QQ是应用间跳转的效果而不是打开一个登录网页的话我们还得再Info.plist表中添加一下链接.
找到工程的Info.plist,然后添加"LSApplicationQueriesSchemes"

<key>LSApplicationQueriesSchemes</key>
 <array>
  <string>mqqapi</string>
  <string>mqq</string>
  <string>mqqOpensdkSSoLogin</string>
  <string>mqqconnect</string>
  <string>mqqopensdkdataline</string>
  <string>mqqopensdkgrouptribeshare</string>
  <string>mqqopensdkfriend</string>
  <string>mqqopensdkapi</string>
  <string>mqqopensdkapiV2</string>
  <string>mqqopensdkapiV3</string>
  <string>mqzoneopensdk</string>
  <string>mqqopensdkapiV3</string>
  <string>mqqopensdkapiV3</string>
  <string>mqzone</string>
  <string>mqzonev2</string>
  <string>mqzoneshare</string>
  <string>wtloginqzone</string>
  <string>mqzonewx</string>
  <string>mqzoneopensdkapiV2</string>
  <string>mqzoneopensdkapi19</string>
  <string>mqzoneopensdkapi</string>
  <string>mqzoneopensdk</string>
 </array>

三.业务集成

1. AppDelegate

到了这里,我们的工程配置算是完成了.接下来在AppDelegate中 #import <TencentOpenAPI/TencentOAuth.h> 并且重写AppDelegate 的handleOpenURL和openURL方法

openURL:
- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation{
   return [TencentOAuth HandleOpenURL:url];
}

handleOpenURL:
- (BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url{
   return [TencentOAuth HandleOpenURL:url];
}

2.初始化iOS SDK API数据对象TencentOAuth

(1) 创建TencentOAuth并初始化其appid,demo为123456789。delegate为实现TencentSessionDelegate的对象:

_tencentOAuth = [[TencentOAuth alloc] initWithAppId:@"123456789", andDelegate:self];

这里delegate不能为空

(2)设置应用需要用户授权的API列表。 (建议如果授权过多的话,可能会造成用户不愿意授权。这里最好只授权应用需要用户赋予的授权。):

 NSArray *permissions = [NSArray arrayWithObjects:kOPEN_PERMISSION_GET_INFO, kOPEN_PERMISSION_GET_USER_INFO, kOPEN_PERMISSION_GET_SIMPLE_USER_INFO, nil];
// 这里调起登录
    [_tencentOAuth authorize:permissions];

注意: 这个地方官网是下面的写法

_permissions = [[NSArray arrayWithObjects:@"get_user_info",@"get_simple_userinfo", @"add_t", nil] retain];

但是本人试验了一下之后会报"msg = "this api without user authorization";ret=100030"

遵守代理

需要遵守TencentSessionDelegate协议,并在代码中实现协议中的方法,具体方法很多,这里就不一一列举了,具体协议可以参照TencentOpenAPI.framework /Headers中的TencentOAuth.h文件

调用SDK登录

1.调用登录的方法很简单

[_tencentOAuth authorize:permissions];

2.登录完成之后,会调用TencentSessionDelegate中关于登录的协议方法

//登录成功:
- (void)tencentDidLogin
{
    if (_tencentOAuth.accessToken.length > 0) {
        // 获取用户信息
        [_tencentOAuth getUserInfo];

    } else {
        NSLog(@"登录不成功 没有获取accesstoken");
    }
}

//非网络错误导致登录失败:
- (void)tencentDidNotLogin:(BOOL)cancelled {
    if (cancelled) {
        NSLog(@"用户取消登录");
    } else {
        NSLog(@"登录失败");
    }
}

3.获取用户信息
实现- (void)getUserInfoResponse:(APIResponse*) response;方法,从response获取用户的个人信息

// 获取用户信息
- (void)getUserInfoResponse:(APIResponse *)response {

    if (response && response.retCode == URLREQUEST_SUCCEED) {

        NSDictionary *userInfo = [response jsonResponse];
        NSString *nickName = userInfo[@"nickname"];

        // 后续操作...


    } else {
        NSLog(@"QQ auth fail ,getUserInfoResponse:%d", response.detailRetCode);
    }
}

结束语

至此如何集成QQ第三方登录就介绍完毕,本人集成的时候也是跳了几个坑,慢慢来总会弄好的.如果大家有啥问题可以issue我.

iOS QQ第三方登实现 我们经常会见到应用的登陆的时候会有QQ,微信,微博等的第三方登陆 如图: 下面我们主要讲一下qq的第三方登陆如何实现 首先,到官网注册: http://wiki.connect.qq.com 一,下载SDK 下载SDK  地址:  http://wiki.open.qq.com/wiki/mobile/SDK 阅读详情

相关推荐

微信、QQ、微博第三方登录

                     微信、QQ、微博第三方登录与分享    最近项目终于要完结了,甲方可能是觉得这个项目做得不错,准备推广,说他们的boss要开发布会了,我听后内心偷偷一笑,这种傻b系统还开发布会,别逗我笑,我的小心脏受不了。于是他们又过来了几次,说加个第三方登录与分享功能。嗯,加个第三方登录与分享,说得轻巧,可苦了我。而且啊,第三方登录,是要做iOS端和Android端的,...

Benson的博客 1万+

TencentOpenAPI SDK接入与API注意事项

因项目需要,必须接入QQ分享的SDK来实现分享到手机QQ的功能。期间遇到不少坑,特写此文,愿给需要的人一点帮助。 一 搭建环境 下载SDK并加入工程 1.1 在腾讯开放平台网站下载好SDK,解压后按照使用说明文档(下载),将TencentOpenAPI.framework和TencentOpenApi_IOS_Bundle.bundle文件拷贝到应用开发的目录下,注意必须放在项目主文件夹的根目录下,

开发分享交流 7402

iOS微信第三方登录实现

这篇文章主要介绍了iOS微信第三方登录实现的全过程,一步一步告诉大家iOS微信实现第三方登录的方法,感兴趣的小伙伴们可以参考一下 一、接入微信第三方登录准备工作。 移动应用微信登录是基于OAuth2.0协议标准构建的微信OAuth2.0授权登录系统。 在进行微信OAuth2.0授权登录接入之前,在微信开放平台注册开发者帐号,并拥有一个已审核通过的移动应用,并获得相应的AppID和AppSecret,申请微信登录且通过审核后,可开始接入流程。(注意)

Cooldiok的博客 4852

IOS开发学习日记(十七)

简单的第三方登录和分享功能简单的第三方登录和分享功能。

gsc711的博客 1082

TencentOpenAPI.framework

iPhone摇动以撤销功能,iOS 8、9、10系统可能会跳转App Store QQ下载页,是由于该framework引起

SAP ABAP MIGO增强实战:自定义页签与字段的完整实现指南

本文详细介绍了SAP ABAP中MIGO增强的实战指南,包括自定义页签与字段的完整实现步骤。通过BADI增强技术,开发者可以快速满足企业个性化需求,如添加供应商批次号等特殊字段。文章涵盖数据存储结构设计、BADI框架实现、核心方法编写及数据持久化方案,帮助用户高效完成MIGO屏幕增强开发。

study的专栏 774

iOS 集成 第三方 QQ

iOS 集成 QQ,微信,新浪微博QQ 基于http://wiki.connect.qq.com/ios_sdk%E7%8E%AF%E5%A2%83%E6%90%AD%E5%BB%BA1.SDK 下载请到SDK下载页面下载最新版本QQ登录iOS SDK。2. SDK文件添加到工程中 iOS SDK目录结构 iOS SDK包中带有两个文件: TencentOpenAPI.f

Jerry’s Blog 763

Excel也能玩转K-means聚类?手把手教你用表格搞定用户分群(附完整公式)

本文详细介绍了如何在Excel中实现K-means聚类算法,无需编程即可完成用户分群。通过SUMIF、SQRT等基础函数,从数据预处理到最终分群全流程手把手教学,特别强调数据标准化和迭代优化的关键步骤,帮助运营团队低成本高效分析用户行为数据。

weixin_30555125的博客 181

手动集成Tencent SDK遇到的坑!!!

手动集成Tencent SDK遇到的坑!!!

ochenmengo的博客 2389

STM32G4系列数字LLC控制程序开发实战

本文详细介绍了基于STM32G4系列MCU的数字LLC控制程序开发全流程。从开发环境搭建、中断服务函数设计,到核心的电压环PID算法、Burst模式控制、状态机设计以及软启动优化,提供了完整的实战代码和关键参数调试经验,帮助开发者高效实现高性能数字电源控制。

weixin_29185493的博客 278

北京绿盟科技安服实习生面经

记一次绿盟校招技术面经历,人生第一次面试,该说不说还是很紧张的,以下是技术面的一些问题,欢迎各位大佬在评论区补充纠正对于面试的问题,都应该自己下来深度去拓展学习,面试官问的问题刚好可以检测我们自己对某个模块的学习情况,借此更好的进行总结和学习。

qq_51690690的博客 3230

flutter在IOS上的登录实现——QQ登录、微信登录、自动识别手机号一键登录、apple登录

开发背景: 我们在使用flutter开发的时候,第一版都基于安卓设备开发的,所以登录功能,也都只适配了安卓设备。 第一版完成后,就由我适配在IOS设备上的登录模块,因为安卓的登录模块不是我开发的,所以修改别人的代码,还尽量不影响原先的逻辑 着实让我头疼。 呕心沥血完成后,赶紧做个记录。 我们APP登录方式很多: QQ登录、微信登录、自动识别手机号一键登录、手机号验证码登录、apple登录 除了手机号验证码登录,其他4种方式我都得重新适配。 一、QQ登录 使用的第三方库: tencent_kit git地

qq_41510985的博客 1万+

一文搞懂【Linux 搭建 Dread Hunger 服务器】附本体及Docker部署集群方案

看直播发现了五花八门的开服器和版本,一时兴起按官方文档进行了搭建尝试,所以我的版本基于官方Stream2024.01.10更新的版本,也就是停服时的玩法,应该可以根据mod和补丁魔改成更那些开服器一样的版本,本文不做谈论,注重服务器搭建,毕竟8个人不可能在一个局域网里乱象:首先,我看了大量教程视频,一类是开服器的推广,另一类自建的基本采用Windows搭建,我觉得最离谱的是大部分教程都会教你买一台远程Windows虚拟机???

LHmine的博客 3985

iOS 第三方登录之 QQ登录

一. 首先需要下载腾讯qq登录所需的库,下载地址是http://open.qq.com/ 。 需要用到的有TencentOpenAPI.framework 和TencentOpenApi_IOS_Bundle.bundle,将两者加入工程。 二.下面就来实现QQ第三方登录 1.声明属性,且viewcontroller实现TencentSessionDelegate @interface

Lydia的博客 2938

手把手教你双目测距理论及生成视差图,深度图,点云图像

Stereo Vision, 也叫双目立体视觉,它的研究可以帮助我们更好的理解人类的双眼是如何进行深度感知的。双目视觉在许多领域得到了应用,例如城市三维重建、3D模型构建(如kinect fusion)、视角合成、3D跟踪、机器人导航(自动驾驶)、人类运动捕捉(Microsoft Kinect)等等。双目测距也属于双目立体视觉的一个应用领域,双目测距的基本原理主要是三角测量原理,即通过视差来判定物体的远近。

qq_53545309的博客 2280

大数据ZooKeeper(一):ZooKeeper基本知识

Zookeeper是一个分布式协调服务的开源框架。主要用来解决分布式集群中应用系统的一致性问题。ZooKeeper本质上是一个。

Lansonli(蓝深李)的博客 3149

iOS QQ第三方登录实现

上图就是传说中的第三方登录 我们本章讲的是 QQ第三方登录 首先我们要有一个APP ID  去 http://connect.qq.com/  QQ互联 网站上 填写资料 注册之后按照顺序 最终走到 APP ID申请成功啦!!!开始使用吧~ 一,下载SDK 下载SD

王颜华的博客 1745

FPGA开发中的操作系统

在FPGA开发中,操作系统起着关键的作用,它负责任务管理、资源管理、中断处理和设备驱动程序等功能。在实际的FPGA开发中,可以选择使用现有的操作系统,如MicroC/OS-II、FreeRTOS等,或者根据具体需求自行设计和开发操作系统。在FPGA(可编程逻辑门阵列)开发中,操作系统扮演着关键的角色,为硬件设计师提供了一种有效的方式来管理资源、调度任务并实现系统级功能。本文将介绍FPGA开发中的操作系统概念,并提供一个简单的示例代码来说明如何在FPGA平台上实现一个基本的操作系统。

CqpFsharp的博客 1156

基于第三方QQ授权登录

如何接入移动应用? 通过简单的四个步骤 (开发者注册 -> 创建移动应用 -> 完善应用信息 ->应用分发),即可加入腾讯开放平台创建移动应用,并将您的应用上线发布到腾讯的移动平台上,轻松通过在应用宝、腾讯QQ、微信、腾讯手机管家、QQ空间、QQ游戏等场景分发聚合的腾讯移动开放平台获取丰厚的收益和巨大的流量。 第一步:开发者注册 1.请点击腾讯开放平台(http://open.qq.co

qq_21649645的专栏 4378

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

iOS原生QQ第三方登录

本文简介 1新建一个工程 2导入SDK 3添加依赖库 4配置SDK Framework路径 5代码实现 5-1 在Appdelegate类中 导入头文件 TencentOAuthh 5-2在登录页面实现QQ登录 即此处的ViewController页面 5-2-1 导入登录所需头文件 5-2-2 实现代理以及声明对象 5-2-3 配置Appkey以及redirectURI 此处以官方Demo中的

上帝很忙的博客 1970

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

上一篇: qq第三方登录
下一篇: iOS QQ实现第三方登录以及遇到的问题
JackRenEngineer
博客等级 码龄10年 37粉丝 120原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值