我设置了登录行为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);
}];
}
寻找有用的回应。感谢。
答案 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");
}
}];