从Facebook App登录iOS返回nil Token响应



我设置登录行为FBSDKLoginBehaviorSystemAccount并尝试登录,然后我的应用程序从Facebook的设置中获取详细信息,然后它在这个类FBSDKLoginManagerLoginResult对象中给我成功的响应,其中包括令牌字符串和用户id。但如果在Facebook设置中没有添加帐户,那么这个将用户移动到Facebook应用程序,并在身份验证后移动回应用程序,但这个返回nil令牌,没有其他细节。我不知道为什么会发生这种情况,我在下面添加了一些代码。我希望每个人都能理解我的问题,那些在iOS开发中执行从Facebook登录的人,还有一些人仍然没有,然后请告诉我将添加更多细节。

if (![self isCurrentAccessTokenValid] ) {
        self.FBLoginManager.loginBehavior = FBSDKLoginBehaviorSystemAccount;
        [self.FBLoginManager logInWithReadPermissions:@[ @"email",@"public_profile",@"user_friends"] handler:
         ^(FBSDKLoginManagerLoginResult *result, NSError *error) {
             block(result, error);
             NSLog(@"%@",result.token.tokenString);
             NSLog(@"%@",result.token.userID);
             //NSLog(@"%hhd",result.isCancelled);
             [FBSDKAccessToken setCurrentAccessToken:result.token];
        }];
    } else {
        [self fetchUserProfile:^(FBSDKGraphRequestConnection *connection, id result, NSError *error) {
            block(result, error);
        }];
    }

寻找有用的回复。谢谢。

试试这个

FBSDKLoginManager *login = [[FBSDKLoginManager alloc] init];
    [login
     logInWithReadPermissions: @[@"public_profile", @"email", @"user_friends"]
     handler:^(FBSDKLoginManagerLoginResult *result, NSError *error) {
         if (error) {
             NSLog(@"Process error");
         } else if (result.isCancelled) {
             NSLog(@"Cancelled");
         } else {
             NSLog(@"Logged in");             
         }
     }];

最新更新