iOS QQ原生的登录分享
2018-05-28 本文已影响16人
HH思無邪
创建应用获取APPID
- 环境搭载,下载官方iOSsdk,照着参考SDK 环境搭建-iOS就可以搭建好
- 添加白名单
QQ与QQ空间白名单:mqzoneopensdk、mqzoneopensdkapi、mqzoneopensdkapi19、mqzoneopensdkapiV2、mqqOpensdkSSoLogin、mqqopensdkapiV2、mqqopensdkapiV3、wtloginmqq2、mqqapi、mqqwpa、mqzone、mqq。
白名单
URL scheme
- 添加 URL scheme
接入代码
AppDelegate中代码
-
引入头文件并遵循代理
引入头文件并遵循代理 -
处理跳转请求
ViewController.m中代码
-
QQ登录
// appID是在腾讯开放平台创建应用所分配的 TencentOAuth loginOAuth = [[TencentOAuth alloc] initWithAppId:appID andDelegate:self]; NSArray permissions = @[kOPEN_PERMISSION_GET_SIMPLE_USER_INFO, kOPEN_PERMISSION_ADD_SHARE, kOPEN_PERMISSION_GET_INFO, kOPEN_PERMISSION_GET_USER_INFO]; [loginOAuth authorize:permissions];
permissions是请求权限类型数组,权限内容如下图:
-
请求登录后,会跳转到手机QQ获取权限,之后可以在回调代理中处理登录状态
QQ登录成功后,如果想要获取QQ用户信息,则可在tencentDidLogin方法中编写下述代码: - (void)tencentDidLogin { // 判断是否获取到Access Token凭证,用于后续访问各开发接口,例如:发表说说到QQ空间、获取用户QQ控件相册列表等 if (_loginOAuth.accessToken) { // 获取用户信息 [_loginOAuth getUserInfo]; } } 接下来,在getUserInfoResponse:方法中获取用户信息: - (void)getUserInfoResponse:(APIResponse *)response { NSLog(@"用户信息:%@",response); }
QQ分享
-
分享URL给好友
// 初始化授权登录对象 _oauth = [[TencentOAuth alloc] initWithAppId:appid andDelegate:self]; QQApiURLObject *urlObject = [QQApiURLObject objectWithURL:[NSURL URLWithString:@"https://itunes.apple.com/cn/app/id1223932262?mt=8"] title:@"团组发票管理" description:@"很好用的哟我开发的哟哈哈哈哈" previewImageData:UIImageJPEGRepresentation([UIImage imageNamed:@"test"], 1) targetContentType:QQApiURLTargetTypeNews]; SendMessageToQQReq *req = [SendMessageToQQReq reqWithContent:urlObject];
-
// 分享给好友
[QQApiInterface sendReq:req]; 分享到QQ空间 _oauth = [[TencentOAuth alloc] initWithAppId:appid andDelegate:self]; QQApiTextObject *txtObj = [QQApiTextObject objectWithText:@"这是一段文字哟"]; SendMessageToQQReq *req = [SendMessageToQQReq reqWithContent:txtObj]; //将内容分享到qq QQApiSendResultCode sent = [QQApiInterface SendReqToQZone:req];