facebook / facebook-ios-sdk

Used to integrate the Facebook Platform with your iOS & tvOS apps.
https://developers.facebook.com/docs/ios
Other
7.75k stars 3.51k forks source link

iOS V 17.0.0 Some users cannot log in #2426

Open 18339689882 opened 1 month ago

18339689882 commented 1 month ago

Checklist before submitting a bug report

Xcode version

15.0

Facebook iOS SDK version

17.0.0

Dependency Manager

CocoaPods

SDK Framework

Login

Goals

Hello Facebook Developers,

After updating to iOS SDK 17.0.0, we have received feedback from our users that they are unable to log in using Facebook. Our current implementation code is as follows:

FBSDKLoginManager *manager = FBSDKLoginManager.new;

NSMutableArray *permissions = @[@"public_profile", @"email"].mutableCopy; if (enable) { [permissions addObject:@"user_friends"]; }

[manager logInWithPermissions:permissions fromViewController:UIApplication.CPS_rootViewController handler:^(FBSDKLoginManagerLoginResult r, NSError e) { CPSSocialResult *result = [[CPSSocialResult alloc] init];

if (r.token) {
    NSString *fields = [NSString stringWithFormat:@"id,name,picture.width(%.0f).height(%.0f)", size.width, size.height];
    NSDictionary *params = @{@"fields" : fields};

    FBSDKGraphRequest *request = [[FBSDKGraphRequest alloc] initWithGraphPath:@"me" parameters:params];

    [request startWithCompletion:^(id<FBSDKGraphRequestConnecting>  _Nullable connection, id  _Nullable r, NSError * _Nullable e) {
        CPSSocialUser *su = CPSSocialUser.new;
        su.type = CPSSocialTypeFB;
        su.openId = FBSDKAccessToken.currentAccessToken.userID;
        su.token = FBSDKAccessToken.currentAccessToken.tokenString;
       // Use userID and tokenString to interact with the server
    }];
}

} I have noticed that the developer documentation mentions Limited Login. I have a few questions:

In what situations should I use Limited Login (FBSDKLoginTrackingLimited), and in what situations should I use Regular Login (FBSDKLoginTrackingEnabled)? In Limited Login mode, we obtain FBSDKProfile.currentProfile.userID and FBSDKAuthenticationToken.currentAuthenticationToken.tokenString. How should we perform the token validation process, and how does it differ from the previous validation process? I urgently need your help to resolve the issue of users being unable to log in. Thank you!

Expected results

to log in

Actual results

login Faild

Steps to reproduce

No response

Code samples & details

FBSDKLoginManager *manager = FBSDKLoginManager.new;

NSMutableArray *permissions = @[@"public_profile",
                                @"email"].mutableCopy;
if (enable) {
    [permissions addObject:@"user_friends"];
}

[manager logInWithPermissions:permissions fromViewController:UIApplication.CPS_rootViewController handler:^(FBSDKLoginManagerLoginResult *r, NSError *e) {
    CPSSocialResult *result = [[CPSSocialResult alloc] init];

    if (r.token) {
        NSString *fields = [NSString stringWithFormat:@"id,name,picture.width(%.0f).height(%.0f)", size.width, size.height];
        NSDictionary *params = @{@"fields" : fields};

        FBSDKGraphRequest *request = [[FBSDKGraphRequest alloc] initWithGraphPath:@"me" parameters:params];

        [request startWithCompletion:^(id<FBSDKGraphRequestConnecting>  _Nullable connection, id  _Nullable r, NSError * _Nullable e) {
            CPSSocialUser *su = CPSSocialUser.new;
            su.type = CPSSocialTypeFB;
            su.openId = FBSDKAccessToken.currentAccessToken.userID;
            su.token = FBSDKAccessToken.currentAccessToken.tokenString;
           // Use userID and tokenString to interact with the server
        }];
    }
}
yanjincheng commented 1 month ago

same question

phongth7 commented 1 month ago

I was in a similar situation recently. To summarize, a limited login is required if opting out of the AT. For more https://github.com/facebook/facebook-ios-sdk/issues/2365

kobe1941 commented 1 month ago

try ios 17.0.2 version and use xcode 15.4