注意:QQ本身没有授权功能,所以想要使用QQ做第三方登录必须通过QQ空间来实现!

第一步:集成ShareSDK(步骤同集成分享的一样,如果已经集成过就不用再重新集成了),这里需要注意的是,由于是要通过QQ空间来实现授权登录,所以在下载ShareSDK包的时候别忘了勾选QQ空间,不然会报尚未导入平台(6)的错误。

第二步:打开工程中的*AppDelegate.m(*代表你的工程名字)
文件,导入QQSDK的头文件:
            #import <TencentOpenAPI/QQApiInterface.h>
            #import <TencentOpenAPI/TencentOAuth.h>
       检查是否已加入handleOpenURL的处理方法,如果没有则添加如下代码:
- (BOOL)application: (UIApplication *)application  handleOpenURL: (NSURL *)url
{
    return [ShareSDK handleOpenURL:url
                            wxDelegate:self;
}

- (BOOL)application: (UIApplication *)application
                openURL: (NSURL *)url
                sourceApplication: (NSString *)sourceApplication
                annotation: (id)annotation
{
    return [ShareSDK handleOpenURL: url
                   sourceApplication:sourceApplication
                   annotation: annotation
                   wxDelegate: self;
}    
第三步: 加入QQ空间初始化方法
   在*AppDelegate.m里面的
- (BOOL)application: (UIApplication *)application didFinishLaunchingWithOptions: (NSDictionary *)launchOptions{}方法中
//初始化我们的sdk
[ShareSDK registerApp:@"iosv1101"];
//添加QQ空间应用
[ShareSDK connectQZoneWithAppKey:@"100371282"
                            appSecret:@"aed9b0303e3ed1e27bae87c33761161d"
                   qqApiInterfaceCls:[QQApiInterface class]
                     tencentOAuthCls:[TencentOAuth class;

注意:这里需要填入的AppKey就是您在QQ互联注册应用的AppID,appSecret就是AppKey!

第四步:配置QQ空间的URL Schemes

打开*-Info.plist(*代表你的工程名字)。找到URL types配置项(如果没有则新增),展开URL types – URL Schemes,在URL Schemes下分别各新增一项用于QQ空间的Scheme(如果不添加则会导致法返回应用)。其填写格式为:tencent+appID(你在QQ空间中申请的AppId), 如:tencent100371282。

第五步:授权登录并获取用户信息

在您的点击事件方法中加入授权获取用户信息接口:

[ShareSDK getUserInfoWithType:ShareTypeQQSpace
                                  authOptions:nil
                                             result:^(BOOL result, id<ISSPlatformUser> userInfo, id<ICMErrorInfo> error) {
                               
                               if (result)
                               {                  
                              //打印输出用户uid:                                 
                                   NSLog(@"uid = %@",[userInfo uid]);
                             //打印输出用户昵称:
                                   NSLog(@"name = %@",[userInfo nickname]);
                            //打印输出用户头像地址:
                                   NSLog(@"icon = %@",[userInfo profileImage]);

}else{

NSLog(@"授权失败!error code == %d, error code == %@", [error errorCode], [error errorDescription]);
  }
}];
注意:ShareTypeQQSpace这里一定是写QQSpace不能写QQ否则会报 不支持授权功能的错误。
           这里只在result里面做了输出的操作 如果您想要做存储数据或者其它显示都可以在这里面操作!

[iOS常见问题] 关于使用QQ做第三方登录的问题!的更多相关文章

  1. iOS之ShareSDK实现分享、第三方登录等功能

    (1)官方下载ShareSDK iOS 2.8.8,地址:http://sharesdk.cn/ (2)根据实际情况,引入相关的库,参考官方文档. (3)在项目的AppDelegate中一般情况下有三 ...

  2. Android中用友盟实现QQ的第三方登录

    //首先应该去友盟的官网注册你的账号,创建一个应用,获得它的APPkey,也可以用它的API上的appkey,下载SDK,下面根据API文档一步步实现就行了. //下面是友盟的APi文档 1.  产品 ...

  3. iOS 第三方登录之 QQ登录

    一. 首先需要下载腾讯qq登录所需的库,下载地址是http://open.qq.com/ . 需要用到的有TencentOpenAPI.framework 和TencentOpenApi_IOS_Bu ...

  4. php 实现qq第三方登录

    学习之前,请大家先看一下oAuth协议. 首先呢,我们进入QQ互联的官方网站 http://connect.qq.com登入我们自己的QQ号,没有QQ号的小伙伴可以忽略本篇博文分享!

  5. PHP实现QQ第三方登录

    PHP实现QQ第三方登录 学习之前,请大家先看一下oAuth协议. 首先呢,我们进入QQ互联的官方网站 http://connect.qq.com登入我们自己的QQ号,没有QQ号的小伙伴可以忽略本篇博 ...

  6. 第三方登录 ----QQ登录

    学习之前,请大家先看一下oAuth协议. 首先呢,我们进入QQ互联的官方网站 http://connect.qq.com登入我们自己的QQ号,没有QQ号的小伙伴可以忽略本篇博文分享!

  7. PHP qq第三方登录,install时,报Not Found

    最近在学习qq的第三方登录,先在慕课网中观看了相关视频,懂了原理. 然后进行操作时,在下载好SDK后,在../install/install.html中,配置了相关的openid,oppkey,cal ...

  8. QQ第三方登录回调地址的问题

    如题,维护以前的项目,发现原来QQ的第三方登录竟然失败了.回调地址的问题 原来是以前的规则变了.好吧,那就改,谁叫我不是改变规则的人. 中途浪费了点时间,项目很大,我一下也找不到项目里那个接口调用的, ...

  9. 分享前端Facebook及Twitter第三方登录

    最近公司要求做海外的第三方登录:目前只做了Facebook和Twitter;国内百度到的信息太少VPN FQ百度+Google了很久终于弄好了.但是做第三方登录基本上都有个特点就是引入必须的js,设置 ...

随机推荐

  1. 智能卡安全机制比较系列(三) MPCOS

    MPCOS是金普斯早期推出的一款多应用支付芯片卡操作系统,支持ISO7816以及PCOS的数据格式和命令.MPCOS具有两级目录文件结构,即MF下可以有一级DF,每个DF下最多可创建63个EF. MP ...

  2. wikioi3052 多米诺

    题目描述 Description 一个矩形可以划分成M*N个小正方形,其中有一些小正方形不能使用.一个多米诺骨牌占用两个相邻的小正方形.试问整个区域内最多可以不重叠地放多少个多米诺骨牌且不占用任何一个 ...

  3. 什么时候该使用NoSQL存储数据库?

    原文地址:http://www.jdon.com/39240 文章总结以下几点:1.频繁写,很少读统计数据,比如点击率,应该使用基于内存的in-memory的key/value存储数据库如Redis, ...

  4. Codeforce 215 div1

    C 把每个qi看成点,则问题转化为:求一个最大的k,遍历k个点的完全图需要的最小步数+1不超过n, (这里+1的原因是把起点加进去) 讨论k的奇偶: k为奇数,每个点度数为偶数,这是一个欧拉回路,步数 ...

  5. Java并发实现一(并发的实现之Thread和Runnable的区别)

    package com.subject01; public class ThreadOrRunnable { public static void main(String[] args) { Syst ...

  6. poj 1286 Necklace of Beads (polya(旋转+翻转)+模板)

      Description Beads of red, blue or green colors are connected together into a circular necklace of ...

  7. Webservice-Java-Xfire

    最近公司最近需要将以前提供出去的接口统一用一个标准来实现,考虑到webservice这个是标 准,因此我花时间大概学习了一下webservice,也对JAVA的几个webservice框架进行了一些小 ...

  8. C语言--返回局部变量的地址

    我们可能会经常写出这样的代码: int  add(int  a , int  b) { return  a + b; } 当然,这是合理的写法,使函数的返回值为 int ,所以,调用函数后会返回一个i ...

  9. IT English Collection(9) of Objective-C

    1 前言 今天我们来解除一篇有关Objective-C的介绍文章,详情如下. 2 详述 2.1 原文 Objective-C defines a small but powerful set of e ...

  10. java后台訪问url连接——HttpClients

    java后台訪问url,并传递数据--通过httpclient方式 须要的包,包可能多几个额外的,假设无用或者冲突删除就可以.httpclient是使用的是4.4.1的版本号:http://downl ...