最近做了Twitter的第三方登录,现在把流程记录下来,以供参考。
首先要拥有一个Twitter账号,没有的童鞋可以选择 注册账号。账号建议使用邮箱,暂时不要绑定手机号(否则可能会导致部分SDK无法使用)。
Documentation Manage My Apps有了账号之后,登陆Twitter Developers,创建自己的application。
Create New App创建一个新的APP
填写相关数据
Application Details这里要注意一下Callback URL,不要填百度。
点击Update Settings 获得Key 和 Secret
OK,下一步下载Fbric。
注册Fabric账号并登陆,之后按照提示下载SDK就OK了,因为我需要的仅仅是第三方登录,所以我只下载了TwitterKit。
TwitterKit按照提示导入SDK,代码稍微有改动
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions{
[[Twitter sharedInstance] startWithConsumerKey:@"Key" consumerSecret:@"Secret"];
[Fabric with:@[[Twitter class]]];
return YES;
}
在实现登录按钮的界面
TWTRLogInButton *logInButton = [TWTRLogInButton buttonWithLogInCompletion:^(TWTRSession *session, NSError *error) {
NSLog(@"userID: %@ \n userName: %@ \n authToken: %@ \n authTokenSecret: %@ ",session.userID,session.userName,session.authToken,session.authTokenSecret);
}];
得到回调的 session 后,可以进一步获取用户信息
TWTRAPIClient *client = [[TWTRAPIClient alloc] init];
[client loadUserWithID:session.userID completion:^(TWTRUser * _Nullable user, NSError * _Nullable error) {
NSLog(@"userID = %@ \n name = %@ \n 用户头像链接 = %@",user.userID,user.name,user.profileImageURL);
}];
如果使用 TWTRLogInButton ,按钮的UI是固定的。如果想使用自定义的UI,可以调用下面的方法,得到 session 是一样的。
[[Twitter sharedInstance] logInWithCompletion:^(TWTRSession * _Nullable session, NSError * _Nullable error) {
if (!session) {
NSLog(@"Login error: %@", [error localizedDescription]);return ;
}
NSLog(@"userID: %@ \n userName: %@ \n authToken: %@ \n authTokenSecret: %@ ",session.userID,session.userName,session.authToken,session.authTokenSecret);
}];
Twitter类里还提供了其它API,如分享、推文等,用到的童鞋可以自行研究。
注:一般我们用 canOpenUrl 来判断本地是否安装某应用,这时需要在info.plist 里做一些设置,添加 LSApplicationQueriesSchemes 在其下添加item ,类型string,值为twitter即可
网友评论