基于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. LinkedList源码学习

    链表数据结构 当前节点会保存上一个.下一个节点. 参见 LinkedList的Node类 实现: 1. 内部链表的方式. 1.1 添加元素.追加的方式,创建一个新的节点[Node],用最后一个节点关联 ...

  2. COGS——T 1215. [Tyvj Aug11] 冗余电网

    http://www.cogs.pro/cogs/problem/problem.php?pid=1215 ★   输入文件:ugrid.in   输出文件:ugrid.out   简单对比时间限制: ...

  3. ArcGIS Engine获得要素的中心点坐标

    IPoint centerPoint =new PointClass();//获得要素的中心点 IArea pArea = pFeature.Shape as IArea; pArea.QueryCe ...

  4. void指针 (补充)

    void* 表示空指针.空指针不能直接使用,比如,指针的加减法操作(由于不知道类型,无法确定偏移的大小).某些情况下.不知道指针的类型,先用void*来取代,依据须要再强制转换成须要的指针类型使用. ...

  5. 数据库阿里连接池 Druid配置详解以及web监控统计

    java程序很大一部分要操作数据库,为了提高性能操作数据库的时候,有不得不使用数据库连接池.数据库连接池有很多选择,c3p.dhcp.proxool等,druid作为一名后起之秀,凭借其出色的性能,也 ...

  6. 6.控制器(ng-Controller)

    转自:https://www.cnblogs.com/best/tag/Angular/ ngController指令给视图添加一个控制器,控制器之间可以嵌套,内层控制器可以使用外层控制器的对象,但反 ...

  7. Codefroces D2. Magic Powder - 2(二分)

    http://codeforces.com/problemset/problem/670/D2 http://codeforces.com/problemset/problem/670/D1 time ...

  8. CodeVS 1296 营业额统计

    1296 营业额统计2002年  时间限制: 1 s  空间限制: 128000 KB  题目等级 : 大师 Master   题目描述 Description Tiger最近被公司升任为营业部经理, ...

  9. BZOJ——T 1113: [Poi2008]海报PLA

    http://www.lydsy.com/JudgeOnline/problem.php?id=1113 Time Limit: 10 Sec  Memory Limit: 162 MBSubmit: ...

  10. win系统下的eclipse连接和使用linux上的hadoop集群

    准备工作 先在win系统的hosts文件中加入下面内容 10.61.6.164master     //hadoop集群的master节点 一.首先在eclipse上安装hadoop插件 下载hado ...