当用户尝试使用Facebook Connect的单点登录(SSO)登录我的iOS应用程序时,在让用户登录该应用程序之前,它会多次失败。这不会每次都发生,但会在用户第一次尝试使用Facebook登录时发生。
重现步骤:
预期行为:
(void)fbDidLogin
方法,该方法将在基础应用程序中进行身份验证。实际行为:
(void)fbDidNotLogin:(BOOL)cancelled
是第一次被召唤。答案 0 :(得分:1)
一个非常好的起点是this link。您现在可以下载新的facebook SDK并将此SDK集成到您的iOS应用程序中。该链接描述了逐步解决方案。无需使用登录委托方法,如fbdidlogin等。
您可以在sessionStateChanged事件的帮助下查看用户登录的天气。
- (void)sessionStateChanged:(FBSession *)session
state:(FBSessionState) state
error:(NSError *)error
{
switch (state) {
case FBSessionStateOpen:
if (!error) {
// We have a valid session
NSLog(@"User session found");
}
break;
case FBSessionStateClosed:
NSLog(@"session state closed");
break;
case FBSessionStateClosedLoginFailed:
[FBSession.activeSession closeAndClearTokenInformation];
break;
default:
break;
}
[[NSNotificationCenter defaultCenter] postNotificationName:FBSessionStateChangedNotification
object:session];
}
在视图控制器中,您可以使用以下条件来检查用户登录的天气:
if (FBSession.activeSession.isOpen) {
// your code here
}
所有内容都在给出的链接中描述。
答案 1 :(得分:0)
你只需要解决FBConnect API的文件。只需查看Facebook.m文件中的那个文件,在这个方法中有一个方法“authorizeWithFBAppAuth”,“其他应用程序打开”的代码是写的..你只需要评论该代码并运行您的应用程序。它不会将您重定向到您设备中安装的默认Facebook应用程序。