基于iOS实现APP的第三方QQ登陆。接入第三方SDK时的一个主要的步骤:

1,找到相关的开放平台。QQ互联平台,http://connect.qq.com/;

2,注冊成功后创建自己的APP。填写一堆基本信号后获得一个App_Key,就是你APP的唯一识别码。

3,下载相应的SDK,而且阅读当中的开发文档或demo,通常看开发文档比較直观。假设看demo,有些SDK的demo简直不忍直视;

4,嵌入SDK中相应功能,測试成功后提交第三方平台审核,等审核通过后就能够正式接入第三方SDK的功能了;

5。完毕全部功能后就提交AppStore审核吧,大概一周左右就可以。

一,QQ登录授权开发:

1,依照开发文档导入SDK,然后把注冊成功后获取到的Key增加到Url Schemes中,比如:tencent1101737816。注意这些文档写的非常清楚。

2,在AppDelegate.m中实现以下方法。注意。直接复制代码,两者写其一就可以,当然了别忘了引入头文件,这是用作返回APP时候用的回调函数。

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

3。注冊并授权。注意授权这里会出现故障

<span style="white-space:pre">	</span>NSArray *_permissions = [NSArray arrayWithObjects:kOPEN_PERMISSION_GET_INFO, kOPEN_PERMISSION_GET_USER_INFO, kOPEN_PERMISSION_GET_SIMPLE_USER_INFO, nil];
<span style="white-space:pre">	</span>[_tencentOAuth authorize:_permissions inSafari:NO]; //授权</span>

4,实现登录成功与否的回调函数,实现协议TencentSessionDelegate,代码例如以下:

- (void)tencentDidLogin
{
_labelTitle.text = @"登录完毕"; if (_tencentOAuth.accessToken && 0 != [_tencentOAuth.accessToken length]){
// 记录登录用户的OpenID、Token以及过期时间
_labelAccessToken.text = _tencentOAuth.accessToken; }else{
_labelAccessToken.text = @"登录不成功 没有获取accesstoken";
}
} -(void)tencentDidNotLogin:(BOOL)cancelled
{
if (cancelled){
_labelTitle.text = @"用户取消登录";
}else{
_labelTitle.text = @"登录失败";
}
} -(void)tencentDidNotNetWork
{
_labelTitle.text=@"无网络连接,请设置网络";
}

5。假设代码能走到登录完毕这里。而且获得了accesstoken,那说明我们的登录流程就走完了,剩下的旧是获取用户详细的信息了。如昵称,城市等等。

6。怎样获取昵称呢,文档提供了这样一个方法

[_tencentOAuth getUserInfo];

可是返回类型是个BOOL类似,非常多朋友就郁闷了,这是什么情况。经过看代码,发现假设开发人员调用了这种方法,假设成功则会实现以下协议TencentSessionDelegate里面的回调函数:

-(void)getUserInfoResponse:(APIResponse *)response
{
// NSLog(@"respons:%@",response.jsonResponse); self.name.text = [response.jsonResponse objectForKey:@"nickname"];
}

这样就能得到我们想要的昵称等信息,到这里就算完毕了我们的QQ登录授权了。剩下的就是发给后台这些登录信息,而且保持授权成功后的token等。看官方文档说明。

iOS 基于第三方QQ授权登录的更多相关文章

  1. 基于第三方微信授权登录的iOS代码分析

    本文转载至 http://www.cocoachina.com/ios/20140922/9715.html 微信已经深入到每一个APP的缝隙,最常用的莫过分享和登录了,接下来就以代码的形式来展开微信 ...

  2. 第三方OAuth授权登录,QQ、微信(WeChat)、微博、GitHub、码云(Gitee)、淘宝(天猫)、微软(Microsoft )、钉钉、谷歌(Google)、支付宝(AliPay)、StackOverflow

    Netnr.Login 第三方OAuth授权登录 支持第三方登录 三方 参考文档 参考文档 参考文档 参考文档 参考文档 参考文档 参考文档 参考文档 参考文档 参考文档 参考文档 参考文档 安装 ( ...

  3. 在自己的网站上实现QQ授权登录

    最近在实现QQ授权登录,现将我的实现过程以及我的理解整理如下.以下所述如有不对之处,请指正. 官方提供的SDK有:JS,PHP,Java.我的网站使用Scala+Play搭建的,所以只能用JS SDk ...

  4. Android之QQ授权登录获取用户信息

    有时候我们开发的app须要方便用户简单登录.能够让用户使用自己的qq.微信.微博登录到我们自己开发的app. 今天就在这里总结一下怎样在自己的app中集成QQ授权登录获取用户信息的功能. 首先我们打开 ...

  5. iOS做新浪微博sso授权登录遇到的一些坑

    新浪微博sso授权第三方登录,这里没有借助第三方框架,如shareSKD和友盟等,直接参考新浪官方SDK和文档. 过程中遇到几个坑,找了很久,好歹最后解决了,记录如下 问题1: _NSInlineDa ...

  6. 解决微信公众号授权登录和开放平台微信第三方应用授权登录获取到的用户Openid关联问题

    开发背景: 最近一段时间一直在做关于微信方面的网站应用开发,这段时间也收获的不少关于微信开发方面的开发技能,接触的比较多的主要有微信公众号和微信网站app第三方登录授权,以及微信会员卡,优惠券和扫描二 ...

  7. ios 第三方qq授权登陆,第一次登陆后,再次登陆,失效

    这问题找了非常久.最后跟客服联系到.等授权成功后要对 _tencentOAuth 对象释放

  8. QQ授权登录

    这两天在做网站第三方登录,总结一下QQ登录吧,支付宝就不用了(下载dome把ID什么的换一换就基本可以了.),本文主要说的是代码的实现方式,逻辑部分主要还是根据帮助文档来的.不懂的同学可以先看看文档. ...

  9. AbpZero之企业微信---登录(拓展第三方auth授权登录)---第三步:需要注意事项

    1.AbpZero的auth登录会在数据库中的AbpUserLogins表会根据你登录的ProviderKey和Provider来生成生成一条记录,ProviderKey在表中是唯一的: 2.要登录成 ...

随机推荐

  1. Kubernetes本地私有仓库配置

    实验环境 master 10.6.191.181 node1 10.6.191.182 node2 10.6.191.183 本地私有仓库 10.6.191.184 一.安装本地私有仓库 1.安装do ...

  2. CentOS下安装SVN服务端

    ---恢复内容开始--- 1.使用yum安装 yum install subversion 2.创建仓库 1.创建成功后在svn下面多了几个文件夹. cd /home mkdir svn svnadm ...

  3. ECNUOJ 2144 抗震机械制造

    抗震机械制造 Time Limit:1000MS Memory Limit:65536KBTotal Submit:312 Accepted:78 Description  为了应付可能到来的地震,E ...

  4. ECNUOJ 2616 游黄山

    游黄山 Time Limit:1000MS Memory Limit:65536KB Total Submit:165 Accepted:52 Special Judge Description Po ...

  5. java流1----InputStream、OutputStream、Reader、Writer

    字节流和字符流 顾名思义,字节流就是操作的是字节,字符流操作的就是字符.其中字节流又可以分为字节输入流(InputStream)和字节输出流(OutputStream).同样的字符流也可以分为字符输入 ...

  6. POJ——T 2449 Remmarguts' Date

    http://poj.org/problem?id=2449 Time Limit: 4000MS   Memory Limit: 65536K Total Submissions: 30754   ...

  7. 个人学习源码的 HBase误区的总结 与 架构图

    HDFS 的备份功能不是给 基于 HBase 等 基于HDFS 的项目做备份的.   如果 HBase 需要备份,那么久需要设置 备份(快照 )功能.   HMaster . kafka 等无主结构并 ...

  8. WIN10远程桌面连接--“出现身份验证错误。要求的函数不支持”

    最近WIN10升级补丁后发现远程桌面无法连接了,报“出现身份验证错误.要求的函数不支持”的错误: 解决办法: 第一种,配置本地自己的电脑,开始菜单->搜索gpedit.msc并打开   打开配置 ...

  9. 29.AngularJS 简介

    转自:https://www.cnblogs.com/best/tag/Angular/ AngularJS 是一个 JavaScript 框架.它可通过 <script> 标签添加到 H ...

  10. POJ 3181完全背包(+高精)

    思路: f[i]表示还剩i空间的方案数 套个高精 (网上有人把它拆成了两个long long) 其实这道题的高精并不难写-.. //By SiriusRen #include <cstdio&g ...