ios - FBSDKLoginMangerLoginResult,NSError Swift 7.3.1

标签 ios swift facebook xcode7.3

我正在尝试使用文档的 firebase 提供。也许我把它从 obj 转换错了。 C. 请看下面。

override func viewDidLoad() {
    super.viewDidLoad()

    facebookLoginBtn.addTarget(self, action: #selector(self.facebookLoginBtnPress), forControlEvents: .TouchUpInside)
}

    // MARK Facebook btn pressed
    @IBAction func facebookLoginBtnPress(sender: AnyObject) {

    let login = FBSDKLoginManager()

    login.logInWithReadPermissions(["email"], fromViewController: self, handler: {(facebookResult: FBSDKLoginManagerLoginResult, facebookError: NSError?) -> Void in

        if facebookError != nil {

        } else if facebookResult.isCancelled {
            let accessToken = FBSDKAccessToken.currentAccessToken().tokenString
        }
    })

}

这是对象。 C

// Handle clicks on the button
[myLoginButton 
 addTarget:self 
 action:@selector(loginButtonClicked) forControlEvents:UIControlEventTouchUpInside];

// Once the button is clicked, show the login dialog
-(void)loginButtonClicked
{
 FBSDKLoginManager *login = [[FBSDKLoginManager alloc] init];
 [login
   logInWithReadPermissions: @[@"public_profile"]
      fromViewController:self
                 handler:^(FBSDKLoginManagerLoginResult *result, NSError *error) {
    if (error) { 
       NSLog(@"Process error");
    } else if (result.isCancelled) {
       NSLog(@"Cancelled");
    } else {
       NSLog(@"Logged in");
    }
  }];
}

这是错误

无法将类型“(FBSDKLoginMangerLoginResult, NSError?) -> Void”的值转换为预期的参数类型“FBSDKLoginMangerRequestTokenHandler!”

最佳答案

//在使用 fb butn 登录时使用此方法 -(void)loginWithFbBtnMethod { 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)
         {
             [self.view makeToast:@"Login process error" duration:2.0 position:@"center"];
             NSLog(@"Login process error");
         }
         else if (result.isCancelled)
         {
             [self.view makeToast:@"User cancelled login" duration:2.0 position:@"center"];
             NSLog(@"User cancelled login");
         }
         else
         {
             NSLog(@"Login Success");
             if ([result.grantedPermissions containsObject:@"email"])
             {
                 NSLog(@"result is:%@",result);
                [self fetchUserInfo];
             }
             else
             {
             }
         }
     }];
}

//用户详情获取方法

关于ios - FBSDKLoginMangerLoginResult,NSError Swift 7.3.1,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38707700/

相关文章:

ios - AS3 - 使用循环动态更改 Sprite 属性不起作用

ios - 我可以在 iTunes 中发布具有不同名称和图标的应用程序,并在应用程序中发布具有不同名称和图标的应用程序吗?

facebook - 我怎样才能像 Sounds 应用程序那样邀请 Facebook 好友?

objective-c - 尝试使用来自 iOS 应用程序的分数 api 发布分数,但需要应用程序 access_token

iphone - 数学(几何): Rectangle projection?

ios - 为什么我的 TableView 更新这么慢?这是正常的吗?

ios - Swift 打开侧边栏/菜单时调整 View 中对象的大小

swift - Completion 很快就会被调用

Android 应用卡在白色空白屏幕上,看起来像是 Facebook Android SDK 4.36.0 问题

使用 Google Firebase 的 iOS Swift Facebook 身份验证 - 如何获取额外权限?