我实现了一个TWTRLoginButton,但由于某种原因,完成块没有注册/被调用,我不知道为什么这是....
登录按钮初始化:
self.twitterLoginView = TWTRLogInButton(logInCompletion: { session, error in
if (session != nil) {
print("signed in as (session.userName)");
} else {
print("error: (error.localizedDescription)");
}
})
点击按钮时出错:
TWTRLogInButton被创建时没有设置completionBlock
你需要让TwitterKit处理重新打开应用程序时,它从twitter重定向回来:
func application(_ app: UIApplication, open url: URL, options: [UIApplicationOpenURLOptionsKey : Any] = [:]) -> Bool {
let twtrHandled = TWTRTwitter.sharedInstance().application(app, open: url, options: options)
return twtrHandled
}
在Code或storyboard中选取一个UIButton,然后将按钮动作赋予以下方法。
-(IBAction)twitterLogin:(id)sender
{
[[Twitter sharedInstance] logInWithCompletion:^(TWTRSession *session, NSError *error){
if (session)
{
[[Twitter sharedInstance]ini]
[[[Twitter sharedInstance] APIClient] loadUserWithID:[session userID]
completion:^(TWTRUser *user,
NSError *error)
{
// handle the response or error
if (![error isEqual:nil]) {
NSLog(@"Twitter info -> user = %@ ",user.description);
{
NSMutableDictionary *dict =[[NSMutableDictionary alloc]init];
[dict setValue:user.userID forKey:@"id"];
[dict setValue:user.name forKey:@"name"];
[dict setValue:user.screenName forKey:@"screenName"];
NSLog(@"User Description is %@",dict);
}
} else {
}
}];
} else {
NSLog(@"error: %@", [error localizedDescription]);
}
}];
}