从Facebook App登录返回iOS

时间:2015-09-17 12:19:24

标签: ios objective-c facebook facebook-login

我设置了登录行为FBSDKLoginBehaviorSystemAccount并尝试登录,然后我的应用程序从Facebook的设置中获取详细信息,然后它在此类FBSDKLoginManagerLoginResult对象中成功响应,其中包括令牌字符串和用户ID。但是,如果Facebook的设置中没有添加帐户,那么这会将用户移动到Facebook App并在身份验证后移回应用程序,但此返回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);
        }];
    }

寻找有用的回应。感谢。

1 个答案:

答案 0 :(得分:0)

试试这个

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");             
         }
     }];