Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/108.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
FBSDKGraphRequest不工作(iOS)_Ios_Objective C_Xcode_Facebook_Facebook Graph Api - Fatal编程技术网

FBSDKGraphRequest不工作(iOS)

FBSDKGraphRequest不工作(iOS),ios,objective-c,xcode,facebook,facebook-graph-api,Ios,Objective C,Xcode,Facebook,Facebook Graph Api,我试图在按下Facebook登录按钮时执行的代码块中使用FBSDKGraphRequest。然而,由于某种原因,这段代码从未执行过。原因可能是什么。我使用的按钮是FBSDKLoginButton,它工作得非常好。我只想检索一次登录后的用户信息,如姓名和电子邮件 [[FBSDKGraphRequest alloc] initWithGraphPath:@"me" parameters:@{@"fields": @"email,name"}] startWithC

我试图在按下Facebook登录按钮时执行的代码块中使用FBSDKGraphRequest。然而,由于某种原因,这段代码从未执行过。原因可能是什么。我使用的按钮是FBSDKLoginButton,它工作得非常好。我只想检索一次登录后的用户信息,如姓名和电子邮件

[[FBSDKGraphRequest alloc] initWithGraphPath:@"me" parameters:@{@"fields": @"email,name"}]
                  startWithCompletionHandler:^(FBSDKGraphRequestConnection *connection, id result, NSError *error) {
                      NSLog(@"test");
                      if (!error) {
                          NSLog(@"fetched user:%@  and Email : %@", result,result[@"email"]);
                      }
                  }];

我使用了自定义的Facebook登录,而不是官方的Facebook FBSDKLoginButton。请尝试下面的代码。今天我集成了我的应用程序的Facebook登录,遇到了你的问题

- (IBAction)FacebookLogin:(id)sender {
    FBSDKLoginManager *login = [[FBSDKLoginManager alloc] init];
    [login
     logInWithReadPermissions: @[@"public_profile", @"email", @"user_friends"]
     fromViewController:self
     handler:^(FBSDKLoginManagerLoginResult *result, NSError *error) {
         if (error) {
             NSLog(@"Process error");
         } else if (result.isCancelled) {
             NSLog(@"Cancelled");
         } else {
             NSLog(@"Logged in");

             [[[FBSDKGraphRequest alloc] initWithGraphPath:@"me" parameters:@{@"fields": @"email,name"}]
         startWithCompletionHandler:^(FBSDKGraphRequestConnection *connection, id result, NSError *error) {
             if (!error) {
                 NSLog(@"fetched user:%@  and Email : %@", result,result[@"email"]);
             }
         }];
         }
     }];
}

默认参数为id和名称,用于在用户公开电子邮件时查找电子邮件。在url字段中添加电子邮件信息,还可以添加所需的权限,如生日等

if ([FBSDKAccessToken currentAccessToken]) {
        [[[FBSDKGraphRequest alloc] initWithGraphPath:@"me?fields=id,name,email" parameters:nil]
         startWithCompletionHandler:^(FBSDKGraphRequestConnection *connection, id result, NSError *error) {
             if (!error) {
                 NSLog(@"fetched user:%@", result);
             }
         }];
    }
结果由用户名、邮件和id组成

然后,要分析配置文件信息,请执行以下代码:

[FBSDKProfile loadCurrentProfileWithCompletion:
     ^(FBSDKProfile *profile, NSError *error) {
         if (profile) {
             NSLog(@"Hello, %@!", profile);
         }
     }];

配置文件由userID、firstName、middleName、lastName、name、linkURL、refreshDate组成

请为您的问题添加更多代码,因为目前还不清楚您打算如何运行上述代码,也不清楚您是否正确实现了
FBSDKLoginButton
。工作正常