通过Twitter登录并尝试获取用户屏幕名称.屏幕名称每次都会生成一个空值.有任何想法吗?
PFUser *currentUser = [PFUser currentUser]; [PFTwitterUtils logInWithBlock:^(PFUser *user,NSError *error) { if (!user) { NSLog(@"Uh oh. The user cancelled the Twitter login."); return; } else if (user.isNew) { twitterScreenName = [PFTwitterUtils twitter].screenName; NSLog(@"%@",[PFTwitterUtils twitter].screenName); NSString * requestString = [NSString stringWithFormat:@"https://api.twitter.com/1.1/users/show.json?screen_name=%@",twitterScreenName ]; NSURL *verify = [NSURL URLWithString:requestString]; NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:verify]; [[PFTwitterUtils twitter] signRequest:request]; [NSURLConnection sendAsynchronousRequest:request queue:[NSOperationQueue mainQueue] completionHandler:^(NSURLResponse *response,NSData *data,NSError *connectionError) { NSError *error; NSDictionary* result = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingAllowFragments error:&error]; if (!error) { user.username =twitterScreenName; user[@"name"]= result[@"name"]; user[@"profileDescription"] = result[@"description"]; user[@"imageURL"] = [result[@"profile_image_url_https"] stringByReplacingOccurrencesOfString:@"_normal" withString:@"_bigger"]; [user saveEventually]; } }]; [self performSegueWithIdentifier: @"username" sender: self]; }
解决方法
我是这样做的:
[PFTwitterUtils logInWithBlock:^(BOOL succeeded,NSError *error) { if ([PFTwitterUtils isLinkedWithUser:[PFUser currentUser]]) { NSURL *info = [NSURL URLWithString:@"https://api.twitter.com/1.1/account/settings.json"]; NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:info]; [[PFTwitterUtils twitter] signRequest:request]; [NSURLConnection sendAsynchronousRequest:request queue:[NSOperationQueue mainQueue] completionHandler:^(NSURLResponse *response,NSError *connectionError) { if (!!data) { NSDictionary *dict = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingMutableLeaves error:nil]; NSString *userName = dict[@"screen_name"]; userName = [userName stringByReplacingOccurrencesOfString:@"Twitter:" withString:@""]; PFUser *user = [PFUser currentUser]; user[@"Twitter"] = userName; [user saveEventually]; } else { //uh oh,no twitter response } }]; } else { //uh oh,failed login } }];
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。