Twitter登录集成
1.申请Twitter账号
2.创建应用
3.获取应用编号
4.配置相关信息
5.xcode配置
6.代码集成
一、创建应用
1.需要登录Twitter开发者平台申请 https://developer.twitter.com/en/portal/dashboard
2.然后添加iOS平台 - 填写应用名称 - 创建应用编号 - 为应用添加产品,然后到设置中完善相关信息,然后保存,配置Bundle ID,这些都是按照流程一步步填写就可以了
3.配置完成之后你就可以得到xcode中info.plist文件中的配置信息
info.plist填写分成二部分
第一部分填写
URL types 填写自己对应的ID
第二部分填写
白名单
二、xcode配置(接入SDK)
加载安装包 pod 'TwitterKit', '~> 3.4.2' (这里有坑后边会说到)
三、代码集成
1.Appdelegate中
///从Twitter获得的 Appkey 和 AppSecret 放在里面
#import <TwitterKit/TWTRKit.h>
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
///在appdelegate 配置
[[TWTRTwitter sharedInstance] startWithConsumerKey:@"Appkey" consumerSecret:@"AppSecret"];
}
- (BOOL)application:(UIApplication *)app openURL:(NSURL *)url options:(NSDictionary<UIApplicationOpenURLOptionsKey,id> *)options {
if ([url.scheme hasPrefix:@"twitter"]) {
return [[Twitter sharedInstance] application:app openURL:url options:options];
}
return false;
}
可以管理一个Manager去维护Twitter登录逻辑
#import <TwitterKit/TWTRKit.h>
@implementation BBLTwitterLogin
+ (void)twitterRequestWithViewController:(UIViewController *)viewController
Complet:(void(^)(BOOL success, NSDictionary *__nullable dic, NSError *__nullable error))complete {
TWTRTwitter *tw = [TWTRTwitter sharedInstance];
[tw logInWithCompletion:^(TWTRSession *session, NSError *error) {
if (session) {
NSLog(@"userName = %@", [session userName]);
NSLog(@"userID = %@", [session userID]);
NSLog(@"authToken = %@", [session authToken]);
NSLog(@"authTokenSecret = %@", [session authTokenSecret]);
NSString *userId = [session userID];
NSString *userName = [session userName];
TWTRAPIClient *client = [[TWTRAPIClient alloc] initWithUserID:userId];
///根据需要获取对应的信息
[client loadUserWithID:userId completion:^(TWTRUser * _Nullable user, NSError * _Nullable error) {
NSLog(@"%@, %@", userId,user.profileURL.absoluteString);
complete(YES, @{@"authToken": session.authToken,
@"authTokenSecret": [session authTokenSecret],
@"userName": userName.length > 0 ? userName : @"",
@"userID": userId.length > 0 ? userId : @""}, nil);
}];
[client requestEmailForCurrentUser:^(NSString * _Nullable email, NSError * _Nullable error) {
NSLog(@"推特邮箱:%@",email);
}];
} else {
complete(NO, @{}, nil);
}
}];
}
@end
以上是集成的方法。到这里基本集成完成 并且如果你的key 和 secret 都没有错应该会唤起Twitter的登录但是前面说的坑在这里都是体现不出来的 因为Twitter是集成了UIWebview的 所以审核时会被拒解决办法就是替换掉Twitterkit 网上也有如何检测 检测项目中是否包含UIWebView
这个是完整简介https://www.jianshu.com/p/9c1507509896
替换TwitterKit
在pod文件中,把 pod 'TwitterKit'
替换为 pod 'TwitterKit5'
进入TwitterSDK的github地址 https://github.com/twitter-archive/twitter-kit-ios/issues/120,