QQ简单登录

摘要:
(UIButton*)btn{_tentLogin=[[TencentOAuthalloc]initWithAppId:@“222222”和Delegate:@“222222”inSafari:@“https://access_token=%@&userDic[@“昵称”]forKey:@“nickname”];}}故障:

1.下载QQ官方API文档,导入对应的包

2.在Info->URL Types文件添加

Identifier:tencent  URL Schemes:tencent+应用appkey(去腾讯后台注册)

3.Appdelegate文件

#pragma mark --- QQLogin-----
- (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];
}

4.对应的viewController文件

#import <TencentOpenAPI/TencentOAuth.h>

@interface LoginController ()<TencentSessionDelegate>
{
    UIView *_loginView;
    TencentOAuth *_tencentLogin;
}
//QQ
-(void)qqLogin:(UIButton *)btn
{
    _tencentLogin=[[TencentOAuth alloc]initWithAppId:@"222222" andDelegate:self];
     NSArray *permissions = [NSArray arrayWithObjects:@"get_user_info", @"get_simple_userinfo", @"add_t", nil];
    [_tencentLogin authorize:permissions localAppId:@"222222" inSafari:YES];
}

#pragma mark----QQLogin----
-(void)tencentDidLogin
{
    NSString *infoUrl=[NSString stringWithFormat:@"https://graph.qq.com/user/get_simple_userinfo?access_token=%@&oauth_consumer_key=%@&openid=%@",_tencentLogin.accessToken,@"222222",_tencentLogin.openId];
    //NSLog(@"%@",infoUrl);
    [NetWorkManage getUserInfoByQQWithUrl:infoUrl whenSuccess:^(id responseData) {
        id result = [NSJSONSerialization JSONObjectWithData:responseData options:NSJSONReadingMutableContainers error:nil];
        if ([result isKindOfClass:[NSDictionary class]]) {
            NSDictionary *userDic = result;
            //
            NSUserDefaults *userDefault = [NSUserDefaults standardUserDefaults];
            NSData *data = [NSData dataWithContentsOfURL:[NSURL URLWithString:userDic[@"figureurl_qq_2"]]];
            [userDefault setObject:userDic[@"nickname"] forKey:@"NickName"];
            [userDefault setObject:data forKey:@"UserImg"];
            [userDefault synchronize];
            self.showUserData();
            [self.navigationController popViewControllerAnimated:YES];
        }
    } Failure:^(NSError *error) {
        
    }];
}
-(void)tencentDidNotNetWork
{
    
}
-(void)tencentDidNotLogin:(BOOL)cancelled
{
    
}

免责声明:文章转载自《QQ简单登录》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇《Java2 实用教程(第五版)》学习指导关于Xcode9的一些问题下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

WinDbg调试分析 asp.net站点 CPU100%问题

 公司为了节省成本,最近有一批服务器降了配置,CPU从8核降到了2核。本身是小站点,访问量也不高,CPU总是会飙到100%而且可以一直持续几个小时,直接强制结束进程可以维持几个小时,几个小时后又一样,运维那边总是受到cpu的警告短信很是苦恼,按理来说就算降低了配置也不至于会让CPU一直100%。    以下就分享本次使用 WinDbg 找出 CPU 100...

SpringBoot开发文档

一、引言 1.1 初始化配置 为了使用SSM框架去开发,准备SSM框架的模板配置。 1.2 整合第三方框架 为了Spring整合第三方框架,单独的去编写xml文件。 1.3 后期维护 后期SSM项目后期xml文件特别多,维护xml文件的成本是很高的 1.4 部署工程 SSM工程部署也是很麻烦,依赖第三方的容器 1.5 敏捷式开发 基于Java的SSM开发...

使用vscode访问和修改远程计算机文件

 这篇文章为Remote Development扩展出现之前所应用的技术,在Remote Development扩展出现后,可直接使用扩展,详情请参阅使用vscode进行远程开发。 以下为旧文档,仅作记录。 使用vscode访问和修改远程文件,分三步实现:在远程linux机器上安装rmate;在本地windows上安装openssh;在vscode中安装扩...

Overleaf 平台的使用

Overleaf 是一个使用 LaTeX 进行多人协同编辑的平台,可以免费注册和使用,不用下载 LaTeX 软件,是最为著名的 LaTeX 在线协作系统。 科研工作者可以在各大期刊的网站上下载到其 Overleaf 模板,进行论文写作。 国内邮箱是无法注册的,一直会提示无法验证是否是机器人。可以选择"Register using ORCID",先注册一个...

Android手机里的垃圾文件和文件夹清理

SD卡中各个文件夹功能的最详尽分析SD卡用久了会有好多文件夹出现,大家看看都是干什么用~1、.android_secure  是官方app2sd的产物,删了之后装到sd卡中的软件就无法使用了。2、.Bluetooth  顾名思义,用蓝牙之后就会有这个。3、.mobo  顾名思义,Moboplayer的缓存文件。4、.QQ   顾名思义,QQ的缓存文件。5、...

android的项目文件介绍

1.res目录存放Android的各种资源文件,比如layout存放布局文件main.xml,values存放各种xml格式的资源文件,字符串资源strings.xml,颜色资源文件:colors.xml;尺寸资源文件:dimens.xml.drawlable-ldpi,drawlable-mdpi,drawlable-hdpi则分别用于存放小、中、大三种...