我无法在iOS中从Facebook获取用户数据

我无法在iOS中从Facebook获取用户数据,ios,iphone,facebook-graph-api,facebook-sdk-3.0,Ios,Iphone,Facebook Graph Api,Facebook Sdk 3.0,我不熟悉iPhone编程。使用下面的代码,我登录Facebook并获取数据。但问题是,如果单击打开的“Facebook按钮”对话框中的“登录”,我会输入Facebook的用户名和密码。然后,如果再次单击同一按钮,我会获取用户数据。但我不想重复单击。以及另外,一旦我登录Facebook。在当时我想获取用户数据的应用程序中,我不想再登录一次,直到我单击注销。请给我最好的主意 -(void)LoginWithFacebookk:(id)sender { if (!FBSession.activ

我不熟悉iPhone编程。使用下面的代码,我登录Facebook并获取数据。但问题是,如果单击打开的“Facebook按钮”对话框中的“登录”,我会输入Facebook的用户名和密码。然后,如果再次单击同一按钮,我会获取用户数据。但我不想重复单击。以及另外,一旦我登录Facebook。在当时我想获取用户数据的应用程序中,我不想再登录一次,直到我单击注销。请给我最好的主意

-(void)LoginWithFacebookk:(id)sender
{ 
   if (!FBSession.activeSession.isOpen) {

    FBSession *session = [[FBSession alloc] init];
    // Set the active session
    [FBSession setActiveSession:session];
    // Open the session
    [session openWithBehavior:FBSessionLoginBehaviorForcingWebView
            completionHandler:^(FBSession *session,
                                FBSessionState status,
                                NSError *error)
     {


            }];

        }
        else
        {
            NSLog(@"open response");
            FBRequest* friendsRequest = [FBRequest requestForMe];
            [friendsRequest startWithCompletionHandler: ^(FBRequestConnection *connection,NSDictionary <FBGraphUser> *user,NSError *error) {

                NSString *emailiddd=[NSString stringWithFormat:@"%@",[user objectForKey:@"email"]];

                NSLog(@"%@",emailiddd);
                NSString *post = [NSString stringWithFormat:@"email=%@",emailiddd];

                NSLog(@"%@",post);

     }];
               }
    }
}
-(void)登录WithFaceBookk:(id)发件人
{ 
如果(!FBSession.activeSession.isOpen){
FBSession*会话=[[FBSession alloc]init];
//设置活动会话
[FBSession setActiveSession:会话];
//开始会议
[会话打开行为:FBSessionLoginBehaviorForcingWebView
completionHandler:^(FBSession*会话,
FBSessionState状态,
N错误*错误)
{
}];
}
其他的
{
NSLog(“开放式响应”);
FBRequest*friendsRequest=[FBRequestRequestForme];
[FriendsRequestStartWithCompletionHandler:^(FBRequestConnection*连接,NSDictionary*用户,NSError*错误){
NSString*emailiddd=[NSString stringWithFormat:@“%@,[user objectForKey:@“email”]];
NSLog(@“%@”,emailiddd);
NSString*post=[NSString stringWithFormat:@“email=%@”,emailiddd];
NSLog(@“%@”,post);
}];
}
}
}

如果您愿意,也可以使用Parse:

- (IBAction)facebookRegistrationButtonPressed {

        // The permissions requested from the user

        NSArray *permissionsArray = @[@"email", @"user_about_me", @"publish_actions", @"status_update", @"manage_pages", @"publish_stream"];

        // Login PFUser using Facebook
        [PFFacebookUtils logInWithPermissions:permissionsArray block:^(PFUser *user, NSError *error) {
            if (!user) {
                if (!error) {
                    NSLog(@"Uh oh. The user cancelled the Facebook login.");
                } else {
                    NSLog(@"Uh oh. An error occurred: %@", error);
                }
            } else if (user.isNew) {
                NSLog(@"User with facebook signed up and logged in!");
                [self processFacebookRequest];
            } else {
                NSLog(@"User with facebook logged in!");
                [self processFacebookRequest];
            }
        }];
    }

    - (void)processFacebookRequest {
        FBRequest *request = [FBRequest requestForMe];
        // Send request to Facebook
        [request startWithCompletionHandler:^(FBRequestConnection *connection, id result, NSError *error) {
            if (!error) {
                // result is a dictionary with the user's Facebook data
                NSDictionary *userData = (NSDictionary *)result;
                NSString * email = [result objectForKey:@"email"];

                NSString *facebookID = userData[@"id"];
                NSLog(@"facebookID = %@", facebookID);

            } else {
                NSLog(@"error : %@", error.localizedDescription);
            }
        }];
    }

如果愿意,还可以使用Parse:

- (IBAction)facebookRegistrationButtonPressed {

        // The permissions requested from the user

        NSArray *permissionsArray = @[@"email", @"user_about_me", @"publish_actions", @"status_update", @"manage_pages", @"publish_stream"];

        // Login PFUser using Facebook
        [PFFacebookUtils logInWithPermissions:permissionsArray block:^(PFUser *user, NSError *error) {
            if (!user) {
                if (!error) {
                    NSLog(@"Uh oh. The user cancelled the Facebook login.");
                } else {
                    NSLog(@"Uh oh. An error occurred: %@", error);
                }
            } else if (user.isNew) {
                NSLog(@"User with facebook signed up and logged in!");
                [self processFacebookRequest];
            } else {
                NSLog(@"User with facebook logged in!");
                [self processFacebookRequest];
            }
        }];
    }

    - (void)processFacebookRequest {
        FBRequest *request = [FBRequest requestForMe];
        // Send request to Facebook
        [request startWithCompletionHandler:^(FBRequestConnection *connection, id result, NSError *error) {
            if (!error) {
                // result is a dictionary with the user's Facebook data
                NSDictionary *userData = (NSDictionary *)result;
                NSString * email = [result objectForKey:@"email"];

                NSString *facebookID = userData[@"id"];
                NSLog(@"facebookID = %@", facebookID);

            } else {
                NSLog(@"error : %@", error.localizedDescription);
            }
        }];
    }

如果您正在检查Facebook在
FacebookSDK
中提供的示例代码,则有一个示例,请检查其工作原理:-

您必须按以下方式配置应用程序:-

在本机iOS应用程序中,您必须设置您在项目中使用的应用程序包Id,例如(com.compame.projecname

为了实现你的项目,我在这里解释

在.h文件中创建一个带有
IBOutlet
的按钮,并像我们通常做的那样将此按钮连接到xib

#import <FacebookSDK/FacebookSDK.h>


@interface LoginViewController : UIViewController<FBLoginViewDelegate>
{
    IBOutlet UIButton *FB_login; // just connect IBoutlate no need to give IBAction
    FBLoginView *loginview;

}
@property (strong, nonatomic) id<FBGraphUser> loggedInUser;
@property (strong, nonatomic) IBOutlet FBProfilePictureView *profilePic; //this is for show profile pic or logged in user

这里是您的示例代码

如果您正在检查Facebook在
FacebookSDK中提供的示例代码
有一个示例,请检查其工作原理:-

您必须按以下方式配置应用程序:-

在本机iOS应用程序中,您必须设置您在项目中使用的应用程序包Id,例如(com.compame.projecname

为了实现你的项目,我在这里解释

在.h文件中创建一个带有
IBOutlet
的按钮,并像我们通常做的那样将此按钮连接到xib

#import <FacebookSDK/FacebookSDK.h>


@interface LoginViewController : UIViewController<FBLoginViewDelegate>
{
    IBOutlet UIButton *FB_login; // just connect IBoutlate no need to give IBAction
    FBLoginView *loginview;

}
@property (strong, nonatomic) id<FBGraphUser> loggedInUser;
@property (strong, nonatomic) IBOutlet FBProfilePictureView *profilePic; //this is for show profile pic or logged in user

这是为您准备的示例代码

感谢您的重播。这是什么是PFFacebookUtils?
PFFacebookUtils
是与解析框架关联的类。不是重播,它是使用解析框架的替代方法:www.Parse.com感谢您提供重播。这里什么是PFFacebookUtils?
PFFacebookUtils
是与解析框架关联的类。不是重播,它是使用解析框架的一种替代方法:www.Parse.com感谢u soo muchh@nitinUr great Nithinva:))@Nithin Gohel感谢u soo muchh@nitinUr great Nithinva:)))@Nithin Gohel