【问题标题】:Authorization error through native facebook application通过本机 facebook 应用程序的授权错误
【发布时间】:2019-06-13 04:47:36
【问题描述】:

当您尝试使用 Facebook 应用程序登录时,SDK 返回错误:

Error Domain=NSPOSIXErrorDomain Code=53 "软件导致连接中止" UserInfo={_kCFStreamErrorCodeKey=53, _kCFStreamErrorDomainKey=1}

在通过Safari授权的情况下不会重现错误,仅通过应用程序而不是每次。

我的代码:

- (IBAction)loginFacebook:(UIButton *)sender
{
     FBSDKLoginManager *login = [[FBSDKLoginManager alloc] init];
     [login logOut];
     [login
     logInWithReadPermissions: @[@"public_profile",@"email"]
     fromViewController:self
     handler:^(FBSDKLoginManagerLoginResult *result, NSError *error) {
        if (error) {
           [self showError:error];
        } else if (result.isCancelled) {
           NSLog(@"Cancelled");
        } else {
           [LoadingView startLoading:@"" inView:[[UIApplication sharedApplication].delegate window] isProgress:NO showWithCheckmark:NO];
           [[BackendService sharedBackendService] fbLoginWithAccessToken:result.token.tokenString successBlock:^() {
                [_errorView removeFromSuperview];
                 _errorView = nil;
                 STOP_LOADING
                [self showMainVC];
             } errorBlock:^(NSError *error) {
                 STOP_LOADING
             [self showError:error];
         }];
      }
   }];
}

【问题讨论】:

    标签: ios objective-c facebook facebook-sdk-4.0


    【解决方案1】:

    以这种方式解决了问题。也许将来会有其他人有用。最小更新延迟帮助了我。这是一个例子:

    - (IBAction)loginFacebook:(UIButton *)sender
    {
        FBSDKLoginManager *login = [[FBSDKLoginManager alloc] init];
        [login logOut];
        [login
         logInWithReadPermissions: @[@"public_profile",@"email"]
         fromViewController:self
        handler:^(FBSDKLoginManagerLoginResult *result, NSError *error) {
    
            if (error) {
                [self showError:error];
            } else if (result.isCancelled) {
                NSLog(@"Cancelled");
            } else {
    
             dispatch_after(dispatch_time(DISPATCH_TIME_NOW, 0.1 * NSEC_PER_SEC), dispatch_get_main_queue(), ^{
    
                 [LoadingView startLoading:@"" inView:[[UIApplication sharedApplication].delegate window] isProgress:NO showWithCheckmark:NO];
                 [[BackendService sharedBackendService] fbLoginWithAccessToken:result.token.tokenString successBlock:^() {
                     [_errorView removeFromSuperview];
                     _errorView = nil;
                     STOP_LOADING
                     [self showMainVC];
                 } errorBlock:^(NSError *error) {
                     STOP_LOADING
                     [self showError:error];
                 }];
    
             });
    
         }
     }];
    

    }

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-02-05
      • 2019-08-14
      • 1970-01-01
      • 1970-01-01
      • 2018-02-03
      • 1970-01-01
      • 1970-01-01
      • 2020-12-18
      相关资源
      最近更新 更多