Twitter屏幕名称在Parse中返回null
通过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, NSData *data, 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 } }];
尝试在Twitter门户中进行配置。 它将为您提供应用程序具有哪些权限的选项(这意味着您可能必须在Twitter的仪表板中手动返回用户名)。
- (IBAction)TWloginPress:(id)sender { [activityview setHidden:NO]; [activityview startAnimating]; [[Twitter sharedInstance] logInWithCompletion:^ (TWTRSession *session, NSError *error) { if (session) { [self signupUser:session.userName email:nil loggedinvia:@"TWITTER"]; } else { NSLog(@"error: %@", [error localizedDescription]); UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"" message:@"There was some problem with signing you with twitter. Please try again." delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil]; [alert show]; } }]; }
- 如何在应用程序中获取voip调用日志信息 – Call Kit
- iOS错误:FBSOpenApplicationErrorDomain错误5.这是什么意思?
- 如何使用UIWebview删除iOS应用程序的html5本地存储
- CMPedometer queryPedometerDataFromDate返回错误103
- 当用户获得推送通知时如何播放自定义声音文件?
- 线程1:加载AVPlayer时EXC_BAD_ACCESS(code = EXC_I386_GPFLT)
- 标题和字幕之间的UITableViewCell空间-iOS
- iPhone添加惯性/动量物理animation,像旋转控制一样为“命运之轮”创造动力
- UILocalNotification的自定义重复间隔