FBSDK(新Facebook SDK 4.0)实施不适用于使用Facebooklogin

我正在使用Facebook Developer中提到的下面的块。 但是,当我的应用程序浏览器callback,那么它总是返回取消结果。

FBSDKLoginManager *login = [[FBSDKLoginManager alloc] init]; [login logInWithReadPermissions:@[@"email"] handler:^(FBSDKLoginManagerLoginResult *result, NSError *error) { if (error) { // Process error } else if (result.isCancelled) { // Handle cancellations } else { // If you ask for multiple permissions at once, you // should check if specific permissions missing if ([result.grantedPermissions containsObject:@"email"]) { // Do work } } }]; 

此更新于3月25日15日发布,

如果有人使用这个,那么请与我分享。

参考: https : //developers.facebook.com/docs/ios/getting-started

您必须在您的appDelegate中添加以下方法

 - (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation { return [[FBSDKApplicationDelegate sharedInstance] application:application openURL:url sourceApplication:sourceApplication annotation:annotation]; } 

如果上面的方法不在AppDelegate中,那么它将导致取消状态。

请参阅: https : //developers.facebook.com/docs/ios/getting-started#startcoding

您可以根据您的预期要求使用这个简单的块

 if ([FBSDKAccessToken currentAccessToken]) { [[[FBSDKGraphRequest alloc] initWithGraphPath:@"me" parameters:nil] startWithCompletionHandler:^(FBSDKGraphRequestConnection *connection, id user, NSError *error) { if (!error) { // NSDictionary *dictUser = (NSDictionary *)user; // This dictionary contain user Information which is possible to get from Facebook account. } }]; } 

访问令牌,你只会得到,只有成功login后

希望对你有帮助

要获得用户configuration文件尝试这一点

 if ([FBSDKAccessToken currentAccessToken]) { [[[FBSDKGraphRequest alloc] initWithGraphPath:@"me" parameters:nil] startWithCompletionHandler:^(FBSDKGraphRequestConnection *connection, id user, NSError *error) { if (!error) { NSDictionary *dictUser = (NSDictionary *)user; self.txfName.text = [dictUser objectForKeyNotNull:@"name"]; self.txfEmail.text = [dictUser objectForKeyNotNull:@"email"]; self.txfUserName.text = [[dictUser objectForKey:@"first_name"] lowercaseString]; NSLog(@"image : https://graph.facebook.com/%@/picture?type=small",[dictUser objectForKeyNotNull:@"id"]); } }]; } 

希望这会帮助你

你不能从Facebooklogin获得电子邮件ID ….为什么?

如果您的Facebook帐户使用“手机号码”注册,并且您没有同一帐户中的电子邮件。

检查这种情况。 这可能正在发生,我们不能把它归咎于FBSDK

希望这会清楚一些观点。

对我来说,下面的一行是被取消的,始终是真的… idk为什么

 [login logInWithReadPermissions:@[@"public_profile", @"email", @"gender"] 

改变到这个…它的工作

 [login logInWithReadPermissions:@[@"public_profile"]