QQ登录腾讯开放平台,创建一个应用,获取APP_KEY

优采云 发布时间: 2021-08-15 22:13

  QQ登录腾讯开放平台,创建一个应用,获取APP_KEY

  一、登录

  1、登录腾讯开放平台,创建应用,获取APP_KEY和APP_ID

  2、下载对应的SDK

  

  3、下载iOS SDK环境设置

  1、导入SDK,配置项目

  1、SDK下载到本地后,将SDK拖入项目

  

  2、添加需要的依赖库

  Security.framework

SystemConfiguration.framework

CoreGraphics.Framework

CoreTelephony.framework

libiconv.tdb

libsqlite3.tdb

libstdc++.tdb

libz.tdb

  3、在项目配置的“Build Settings”栏中找到“Linking”配置区,在“Other Linker Flags”配置项中添加属性值“-fobjc-arc”

  

  2、添加项目代码

  1、添加网址方案,新方案=腾讯+appid。

  

  2、在plist文件中设置ATS

  

  3、在plist文件中添加白名单

  LSApplicationQueriesSchemes

mqqapi

mqq

mqqOpensdkSSoLogin

mqqconnect

mqqopensdkdataline

mqqopensdkgrouptribeshare

mqqopensdkfriend

mqqopensdkapi

mqqopensdkapiV2

mqqopensdkapiV3

mqzoneopensdk

wtloginmqq

wtloginmqq2

mqqwpa

mqzone

mqzonev2

mqzoneshare

wtloginqzone

mqzonewx

mqzoneopensdkapiV2

mqzoneopensdkapi19

mqzoneopensdkapi

mqqbrowser

mttbrowser

  添加后如下图:

  

  2、在 AppDelegate.m 中添加代码:

  #import "AppDelegate.h"

#import

#import

@interface AppDelegate ()

@property (nonatomic, strong) TencentOAuth *tencentOAuth;

@end

@implementation AppDelegate

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {

// Override point for customization after application launch.

//初始化SDK

_tencentOAuth = [[TencentOAuth alloc] initWithAppId:@"222222" andDelegate:self];

//设置应用需要用户授权的API列表

NSArray *_permissions = [NSArray arrayWithObjects:@"get_user_info", @"get_simple_userinfo", @"add_t", nil];

//调用SDK登录

[_tencentOAuth authorize:_permissions inSafari:NO];

[_tencentOAuth accessToken] ;

[_tencentOAuth openId] ;

return YES;

}

//登录成功

- (void)tencentDidLogin

{

NSLog(@"登录完成");

if (_tencentOAuth.accessToken && 0 != [_tencentOAuth.accessToken length]) {

// 记录登录用户的OpenID、Token以及过期时间

NSLog(@"%@",_tencentOAuth.accessToken);

} else {

NSLog(@"登录不成功 没有获取accesstoken");

}

}

//非网络错误导致登录失败

-(void)tencentDidNotLogin:(BOOL)cancelled

{

if (cancelled) {

NSLog(@"用户取消登录");

} else {

NSLog(@"登录失败");

}

}

//网络错误导致登录失败

-(void)tencentDidNotNetWork

{

NSLog(@"无网络连接,请设置网络");

}

// 处理来至QQ的请求

- (void)onReq:(QQBaseReq *)req{

NSLog(@" ----req %@",req);

}

//处理来至QQ的响应

- (void)onResp:(QQBaseResp *)resp{

NSLog(@" ----resp %@",resp);

}

//处理QQ在线状态的回调

- (void)isOnlineResponse:(NSDictionary *)response{

}

- (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、错误处理

  我在集成中遇到配置错误,如下图:

  

  解决方法:我在QQ开放平台注册了一个应用,获得了APPID,但是没有提交审核。有可能是未审核的APPID不可用(大概),可以换一个腾讯提供的APPID:222222。

  

   //初始化SDK

_tencentOAuth = [[TencentOAuth alloc] initWithAppId:@"222222" andDelegate:self];

  演示下载

  这是两个地方,如果你设置正确,就是这样。

  二、微信登录

  1、登录微信开放平台,创建应用,获取APP_KEY和APP_ID

  2、下载对应的SDK

  

  1、导入SDK,配置项目

  1、将下载的SDK拖入项目

  2、添加依赖库

  SystemConfiguration.framework

libz.tdb

libsqlite3.0.tdb

libc++.tdb

Security.framework

CoreTelephony.framework

CFNetwork.framework

  如果一些依赖库已经存在,则无需重复添加。

  3、在您的项目文件中选择构建设置,并在“其他链接器标志”中添加“-Objc -all_load”

  

  4、在Xcode中,选择你的项目设置,选择“TARGETS”栏,在“info”选项卡的“URL type”中添加“URL scheme”作为你注册的应用id。

  

  2、添加相关代码

  1、在 AppDelegate.m 中导入头文件

  #import "WXApi.h"

  2、添加协议:

  WXApiDelegate

  3、注册微信SDK:

  

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {

// Override point for customization after application launch.

[WXApi registerApp:@"wxd477edab60670232"];

return YES;

}

  4、页面跳转处理

  - (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation{

if([[url scheme] hasPrefix:@"tencent"]) {

return [TencentOAuth HandleOpenURL:url];

}else if([[url scheme] hasPrefix:@"wx"]){

return [WXApi handleOpenURL:url delegate:self];

}

return YES;

}

- (BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url{

if([[url scheme] hasPrefix:@"tencent"]) {

return [TencentOAuth HandleOpenURL:url];

} else if([[url scheme] hasPrefix:@"wx"]) {

return [WXApi handleOpenURL:url delegate:self];

}

return YES;

}

  如果项目中集成了多个第三方登录,需要判断。

  5、发送请求微信登录

  在需要调用微信登录的按钮方法中添加如下代码:

   SendAuthReq* req = [[SendAuthReq alloc] init];

req.scope = @"snsapi_message,snsapi_userinfo,snsapi_friend,snsapi_contact"; // @"post_timeline,sns"

req.state = @"xxx";

[WXApi sendAuthReq:req viewController:self delegate:nil];

  效果图

  

  演示下载

  三、新浪微博登录

  1、登录新浪微博开放平台,创建应用,获取APPID和A*敏*感*词*EY。

  2、下载对应的SDK

  1、导入SDK,配置项目

  1、下载SDK后,将SDK拖入项目

  

  2、 项目中引入静态库后,编译时需要添加-ObjC,在Target->Build Settings->Linking下的Other Linker Flags中添加-ObjC。 (如果已经添加了就不用再添加了)

  3、添加依赖库(如果已经添加了一些依赖库,则无需再次添加)

  QuartzCore.framework

ImageIO.framework

SystemConfiguration.framework

Security.framework

CoreTelephony.framework

CoreText.framework

UIKit.framework

Foundation.framework

CoreGraphics.framework

libz.tdb

libsqlite3.tdb

  4、添加 URL Schemes

  

  2、添加相关代码

  在 AppDelegate.m 中添加头文件

  #import "WeiboSDK.h"

  添加协议

  WeiboSDKDelegate

  - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {

// Override point for customization after application launch.

[WeiboSDK registerApp:@"2045436852"];

return YES;

}

- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation{

if([[url scheme] hasPrefix:@"tencent"]) {

return [TencentOAuth HandleOpenURL:url];

}else if([[url scheme] hasPrefix:@"wx"]){

return [WXApi handleOpenURL:url delegate:self];

} else {

return [WeiboSDK handleOpenURL:url delegate:self];

}

}

- (BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url{

if([[url scheme] hasPrefix:@"tencent"]) {

return [TencentOAuth HandleOpenURL:url];

} else if([[url scheme] hasPrefix:@"wx"]) {

return [WXApi handleOpenURL:url delegate:self];

} else {

return [WeiboSDK handleOpenURL:url delegate:self];

}

return YES;

}

  在需要调用新浪微博登录的按钮方法中添加代码:

   WBMessageObject *message = [WBMessageObject message];

message.text = @"测试使用";

WBSendMessageToWeiboRequest *request = [WBSendMessageToWeiboRequest requestWithMessage:message];

[WeiboSDK sendRequest:request];

  新浪微博登录需要真机测试。

  演示下载

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线