FBSDK(新的Facebook SDK 4.0)实施不适用于登录Facebook

Sar*_*tel 15 objective-c sharing ios swift ios8

我正在使用Facebook Developer中提到的以下块.但是当我的应用程序浏览器回调时,它总是返回已取消的结果.

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
       }
  }
 }];
Run Code Online (Sandbox Code Playgroud)

此更新于3月25日发布,

如果有人使用过这个,请与我分享.

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

Dhe*_*ngh 12

您必须在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];
}
Run Code Online (Sandbox Code Playgroud)

如果AppDelegate中没有上述方法,则会导致取消状态.

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


小智 7

您可以根据预期要求使用此简单块

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.
           }
        }];
}
Run Code Online (Sandbox Code Playgroud)

只有在成功登录后才能获得访问令牌

希望对你有帮助


Sar*_*tel 1

您无法从 Facebook 登录获取电子邮件 ID....为什么???

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

检查这个场景。这种情况可能会发生,我们不能将其归咎于FBSDK

希望这能澄清一些问题。