我设置登录行为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");
}
}];