Ios Facebook登录状态检查问题
当用户打开Facebook设置视图时,如何识别当前登录状态。如果它已被记录,我如何检索用户的进一步信息。例如生日、年龄、性别等 我写了这段代码,但它不起作用。提前谢谢Ios Facebook登录状态检查问题,ios,objective-c,facebook,Ios,Objective C,Facebook,当用户打开Facebook设置视图时,如何识别当前登录状态。如果它已被记录,我如何检索用户的进一步信息。例如生日、年龄、性别等 我写了这段代码,但它不起作用。提前谢谢 - (void)viewDidLoad { [super viewDidLoad]; if ([FBSDKAccessToken currentAccessToken]) { //Going to another ViewController, which include user's name, //age,
- (void)viewDidLoad {
[super viewDidLoad];
if ([FBSDKAccessToken currentAccessToken]) {
//Going to another ViewController, which include user's name,
//age, photo and so on.
} else {
FBSDKLoginButton *loginButton = [[FBSDKLoginButton alloc] init];
loginButton.center = self.view.center;
[self.view addSubview:loginButton];
}
}
试试这个,它能用
以下是获取SDK 4.0信息的文档
以下是一些图形api键。
"public_profile",
"email",
"user_friends" ,
"user_hometown",
"user_work_history" ,
"user_birthday" ,
"user_education_history
试试这个,它能用
以下是获取SDK 4.0信息的文档
以下是一些图形api键。
"public_profile",
"email",
"user_friends" ,
"user_hometown",
"user_work_history" ,
"user_birthday" ,
"user_education_history
以下是获取用户信息的完整代码
FBSDKLoginManager *login = [[FBSDKLoginManager alloc] init];
[login
logInWithReadPermissions: @[@"public_profile", @"user_friends", @"email"]
fromViewController:self
handler:^(FBSDKLoginManagerLoginResult *result, NSError *error) {
if (error) {
DLog(@"Process error======%@",error.description);
indicators.hidden=YES;
[indicators stopAnimating];
} else if (result.isCancelled) {
DLog(@"Cancelled");
indicators.hidden=YES;
[indicators stopAnimating];
} else {
if ([FBSDKAccessToken currentAccessToken]) {
[[[FBSDKGraphRequest alloc] initWithGraphPath:@"me" parameters:@{@"fields": @"id, name, link, first_name, last_name, picture.type(large), email, birthday, bio ,location ,friends ,hometown , gender ,friendlists"}]
startWithCompletionHandler:^(
FBSDKGraphRequestConnection *connection, id result, NSError *error) {
if (!error)
{
// NSLog(@"fetched user:%@", result);
// [self fetchingFacebookFriends];
[defFacebookData setObject:[result objectForKey:@"email"] forKey:@"fbEmail"];
[defFacebookData setObject:[result objectForKey:@"id"] forKey:@"fbID"];
//PASS ID
getFbid = [result objectForKey:@"id"];
NSLog(@"getFbid========>%@",getFbid);
//PASS FIRST NAME
getFbFirstName=[result objectForKey:@"first_name"];
NSLog(@"first======>%@",getFbFirstName);
//PASS LAST NAME
getFBlastName=[result objectForKey:@"last_name"];
NSLog(@"first======>%@",getFBlastName);
//PASS EMAIL
getFbemail=[result objectForKey:@"email"];
NSLog(@"first======>%@",getFbemail);
//PASS PHONE
getfbGender=[result objectForKey:@"gender"];
NSLog(@"first======>%@",getfbGender);
[defFacebookData setObject:[result objectForKey:@"name"] forKey:@"fbName"];
// Image
FBSDKGraphRequest *request = [[FBSDKGraphRequest alloc]
initWithGraphPath:[NSString stringWithFormat:@"me/picture?type=large&redirect=false"]
parameters:nil
HTTPMethod:@"GET"];
[request startWithCompletionHandler:^(FBSDKGraphRequestConnection *connection,
id fbImageResult,
NSError *error) {
NSString *strURL = [NSString stringWithFormat:@"%@",[[fbImageResult objectForKey:@"data"] objectForKey:@"url"]];
NSLog(@"strURL=====>%@",strURL);
[defFacebookData setObject:strURL forKey:@"fbImage"];
[defFacebookData synchronize];
NSDictionary *fbdict=[NSDictionary dictionaryWithObjectsAndKeys:getFbid,@"id",getFbFirstName,@"first_name",getFBlastName,@"last_name",getFbemail,@"email",getfbGender,@"gender",strURL,@"fbImage", nil];
NSLog(@"done=========>%@",fbdict);
UIStoryboard*storyboard=[AppDelegate storyBoardType];
NSUserDefaults *defaults =[NSUserDefaults standardUserDefaults];
BOOL fblogin =[defaults boolForKey:@"KeyEditProfile"];
if (fblogin)
{
UIStoryboard*Storyboard=[AppDelegate storyBoardType];
DashboardVC* tabbarController = (DashboardVC*)[Storyboard instantiateViewControllerWithIdentifier:@"DashboardVCId"];
indicators.hidden=YES;
[indicators stopAnimating];
[self.navigationController pushViewController:tabbarController animated:YES];
}
else
{
EditFBVC *cpvc=(EditFBVC*)[storyboard instantiateViewControllerWithIdentifier:@"EditFBVCId"];
NSLog(@"get fb id ===%@",getFbid);
cpvc.dictFacebookdict =fbdict;
cpvc.strFBlogin =@"fbAllDataValue";
indicators.hidden=YES;
[indicators stopAnimating];
[self.navigationController pushViewController:cpvc animated:YES];
}
}];
}
else{
DLog(@"error is %@", error.description);
}
}];
}
}
}];
以下是获取用户信息的完整代码
FBSDKLoginManager *login = [[FBSDKLoginManager alloc] init];
[login
logInWithReadPermissions: @[@"public_profile", @"user_friends", @"email"]
fromViewController:self
handler:^(FBSDKLoginManagerLoginResult *result, NSError *error) {
if (error) {
DLog(@"Process error======%@",error.description);
indicators.hidden=YES;
[indicators stopAnimating];
} else if (result.isCancelled) {
DLog(@"Cancelled");
indicators.hidden=YES;
[indicators stopAnimating];
} else {
if ([FBSDKAccessToken currentAccessToken]) {
[[[FBSDKGraphRequest alloc] initWithGraphPath:@"me" parameters:@{@"fields": @"id, name, link, first_name, last_name, picture.type(large), email, birthday, bio ,location ,friends ,hometown , gender ,friendlists"}]
startWithCompletionHandler:^(
FBSDKGraphRequestConnection *connection, id result, NSError *error) {
if (!error)
{
// NSLog(@"fetched user:%@", result);
// [self fetchingFacebookFriends];
[defFacebookData setObject:[result objectForKey:@"email"] forKey:@"fbEmail"];
[defFacebookData setObject:[result objectForKey:@"id"] forKey:@"fbID"];
//PASS ID
getFbid = [result objectForKey:@"id"];
NSLog(@"getFbid========>%@",getFbid);
//PASS FIRST NAME
getFbFirstName=[result objectForKey:@"first_name"];
NSLog(@"first======>%@",getFbFirstName);
//PASS LAST NAME
getFBlastName=[result objectForKey:@"last_name"];
NSLog(@"first======>%@",getFBlastName);
//PASS EMAIL
getFbemail=[result objectForKey:@"email"];
NSLog(@"first======>%@",getFbemail);
//PASS PHONE
getfbGender=[result objectForKey:@"gender"];
NSLog(@"first======>%@",getfbGender);
[defFacebookData setObject:[result objectForKey:@"name"] forKey:@"fbName"];
// Image
FBSDKGraphRequest *request = [[FBSDKGraphRequest alloc]
initWithGraphPath:[NSString stringWithFormat:@"me/picture?type=large&redirect=false"]
parameters:nil
HTTPMethod:@"GET"];
[request startWithCompletionHandler:^(FBSDKGraphRequestConnection *connection,
id fbImageResult,
NSError *error) {
NSString *strURL = [NSString stringWithFormat:@"%@",[[fbImageResult objectForKey:@"data"] objectForKey:@"url"]];
NSLog(@"strURL=====>%@",strURL);
[defFacebookData setObject:strURL forKey:@"fbImage"];
[defFacebookData synchronize];
NSDictionary *fbdict=[NSDictionary dictionaryWithObjectsAndKeys:getFbid,@"id",getFbFirstName,@"first_name",getFBlastName,@"last_name",getFbemail,@"email",getfbGender,@"gender",strURL,@"fbImage", nil];
NSLog(@"done=========>%@",fbdict);
UIStoryboard*storyboard=[AppDelegate storyBoardType];
NSUserDefaults *defaults =[NSUserDefaults standardUserDefaults];
BOOL fblogin =[defaults boolForKey:@"KeyEditProfile"];
if (fblogin)
{
UIStoryboard*Storyboard=[AppDelegate storyBoardType];
DashboardVC* tabbarController = (DashboardVC*)[Storyboard instantiateViewControllerWithIdentifier:@"DashboardVCId"];
indicators.hidden=YES;
[indicators stopAnimating];
[self.navigationController pushViewController:tabbarController animated:YES];
}
else
{
EditFBVC *cpvc=(EditFBVC*)[storyboard instantiateViewControllerWithIdentifier:@"EditFBVCId"];
NSLog(@"get fb id ===%@",getFbid);
cpvc.dictFacebookdict =fbdict;
cpvc.strFBlogin =@"fbAllDataValue";
indicators.hidden=YES;
[indicators stopAnimating];
[self.navigationController pushViewController:cpvc animated:YES];
}
}];
}
else{
DLog(@"error is %@", error.description);
}
}];
}
}
}];
你的情况不对,那怎么解决呢?提前感谢。您使用的facebook sdk版本是哪一个?新版本是v4.17.0。您的情况不正确。那么如何修复它?提前感谢。您使用哪一个facebook sdk版本?新版本v4.17.0。