我正在尝试loginFacebook,它login成功,但不返回到应用程序

此后我无法回到应用程序(如下图所示),无法检索任何用户的数据。

我已经search,但没有得到任何合适的答案,我的查询。

日志的图片:

在这里输入图像说明

如下图所示的结束,不要回到应用程序,没有用户的数据:

在这里输入图像说明

 Step-1. Download latest Facebook SDK (it includes major changes). Step-2. Add FBSDKCoreKit.framework and FBSDKLoginKit.framework to your project. Step-3. Now go to Project > Build Phases > add SafariServices.framework Step-4. There are three changes in info.plist we need to verify. 4.1 Make sure you have below in your info.plist file <key>CFBundleURLTypes</key> <array> <dict> <key>CFBundleURLSchemes</key> <array> <string><your fb id here eg. fbxxxxxx></string> </array> </dict> </array> <key>FacebookAppID</key> <string><your FacebookAppID></string> <key>FacebookDisplayName</key> <string><Your_App_Name_Here></string> 4.2 Now add below for White-list Facebook Servers, this is must for iOS 9 <key>NSAppTransportSecurity</key> <dict> <key>NSExceptionDomains</key> <dict> <key>facebook.com</key> <dict> <key>NSIncludesSubdomains</key> <true/> <key>NSExceptionRequiresForwardSecrecy</key> <false/> </dict> <key>fbcdn.net</key> <dict> <key>NSIncludesSubdomains</key> <true/> <key>NSExceptionRequiresForwardSecrecy</key> <false/> </dict> <key>akamaihd.net</key> <dict> <key>NSIncludesSubdomains</key> <true/> <key>NSExceptionRequiresForwardSecrecy</key> <false/> </dict> </dict> </dict> 4.3 Add URL schemes <key>LSApplicationQueriesSchemes</key> <array> <string>fbapi</string> <string>fb-messenger-api</string> <string>fbauth2</string> <string>fbshareextension</string> </array> Step-5. Now open AppDelegate.m file 5.1 Add below import statements #import <FBSDKLoginKit/FBSDKLoginKit.h> #import <FBSDKCoreKit/FBSDKCoreKit.h> 5.2 update following following methods - (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation { return [[FBSDKApplicationDelegate sharedInstance] application:application openURL:url sourceApplication:sourceApplication annotation:annotation]; } - (void)applicationDidBecomeActive:(UIApplication *)application { [FBSDKAppEvents activateApp]; } - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { return [[FBSDKApplicationDelegate sharedInstance] application:application didFinishLaunchingWithOptions:launchOptions]; } Step-6. Now we need to modify our Login Controller, where we do Login task 6.1 Add these imports in Login ViewController.m #import <FBSDKCoreKit/FBSDKCoreKit.h> #import <FBSDKLoginKit/FBSDKLoginKit.h> 6.2 Add Facebook Login Button FBSDKLoginButton *loginButton = [[FBSDKLoginButton alloc] init]; loginButton.center = self.view.center; [self.view addSubview:loginButton]; 6.3 Handle Login button click -(IBAction)facebookLogin:(id)sender { FBSDKLoginManager *login = [[FBSDKLoginManager alloc] init]; if ([FBSDKAccessToken currentAccessToken]) { NSLog(@"Token is available : %@",[[FBSDKAccessToken currentAccessToken]tokenString]); [self fetchUserInfo]; } else { [login logInWithReadPermissions:@[@"email"] fromViewController:self handler:^(FBSDKLoginManagerLoginResult *result, NSError *error) { if (error) { NSLog(@"Login process error"); } else if (result.isCancelled) { NSLog(@"User cancelled login"); } else { NSLog(@"Login Success"); if ([result.grantedPermissions containsObject:@"email"]) { NSLog(@"result is:%@",result); [self fetchUserInfo]; } else { [SVProgressHUD showErrorWithStatus:@"Facebook email permission error"]; } } }]; } } 6.4 Get user info (name, email etc.) -(void)fetchUserInfo { if ([FBSDKAccessToken currentAccessToken]) { NSLog(@"Token is available : %@",[[FBSDKAccessToken currentAccessToken]tokenString]); [[[FBSDKGraphRequest alloc] initWithGraphPath:@"me" parameters:@{@"fields": @"id, name, email"}] startWithCompletionHandler:^(FBSDKGraphRequestConnection *connection, id result, NSError *error) { if (!error) { NSLog(@"results:%@",result); NSString *email = [result objectForKey:@"email"]; NSString *userId = [result objectForKey:@"id"]; if (email.length >0 ) { //Start you app Todo } else { NSLog(@“Facebook email is not verified"); } } else { NSLog(@"Error %@",error); } }]; } } 

整合facebook API并阅读文档

这是一个示例代码

 if ([FBSDKProfile currentProfile]) //checking the login status { NSLog(@"User name: %@",[FBSDKProfile currentProfile].name); NSLog(@"User ID: %@",[FBSDKProfile currentProfile].userID); } 

错误不是由于facebook整合造成的。 这可能是viewDidLoad中显示视图的问题。将其更改为viewDidAppear。 指的是重复@( 其视图不在窗口层次结构中 )