iOS 基于第三方QQ受权登陆

iOS 基于第三方QQ受权登陆html

 

 

基于iOS实现APP的第三方QQ登录,接入第三方SDK时的一个基本的步骤:json

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

2,注册成功后建立本身的APP,填写一堆基本信号后得到一个App_Key,就是你APP的惟一识别码;app

3,下载对应的SDK,而且阅读其中的开发文档或demo,一般看开发文档比较直观,若是看demo,有些SDK的demo简直不忍直视;函数

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

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

 

一,QQ登陆受权开发:spa

1,按照开发文档导入SDK,而后把注册成功后获取到的Key加入到Url Schemes中,例如:tencent1101737816,注意这些文档写的很清楚;code

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

 

?

1

2

3

4

5

6

7

8

9

- (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,注册并受权,注意受权这里会出现问题

 

?

1

<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];

?

1

<span style="white-space:pre">  </span>[_tencentOAuth authorize:_permissions inSafari:NO]; //受权

 

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

 

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

- (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,如何获取昵称呢,文档提供了这样一个方法

 

?

1

[_tencentOAuth getUserInfo];

 

可是返回类型是个BOOL相似,不少朋友就郁闷了,这是什么状况,通过看代码,发现若是开发者调用了这个方法,若是成功则会实现下面协议TencentSessionDelegate里面的回调函数:

?

1

2

3

4

5

6

-(void)getUserInfoResponse:(APIResponse *)response

{

 //   NSLog(@"respons:%@",response.jsonResponse);

      

    self.name.text = [response.jsonResponse objectForKey:@"nickname"];

}

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

相关文章
相关标签/搜索