2012-03-25 86 views
0

我正在使用Facebook Connect與我的應用程序。一切都已經建立,所有的代碼都可以工作。在昨天左右,我可以用我的應用程序登錄,然後發佈內容和其他功能。我不記得做出任何真正的改變。和往常一樣,每當我按下登錄按鈕,它就會進入一個Safari頁面,在那裏我必須確認我想要使用這個應用程序,並說明我登錄的是誰。如果我按下確定,它會返回到應用程序。在整個過程中,在應用程序中,Facebook從不登錄。請記住:只是昨天這個工作,我不會回想起任何改變!以下是連接如何開始:Facebook SSO未登錄(isSessionValid始終返回NO)

-(IBAction)connectToFacebook { 

    [loginButton setImage:[UIImage imageNamed:@"[email protected]"] forState:UIControlStateNormal]; 
    facebook = [[Facebook alloc] initWithAppId:@"387500177929927" andDelegate:self]; 
    NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; 
    if ([defaults objectForKey:@"FBAccessTokenKey"] && [defaults objectForKey:@"FBExpirationDateKey"]) { 
    facebook.accessToken = [defaults objectForKey:@"FBAccessTokenKey"]; 
    facebook.expirationDate = [defaults objectForKey:@"FBExpirationDateKey"]; 
    } 

    if (![facebook isSessionValid]) { 
    [facebook authorize:nil]; 
    }  
    NSTimer *timer = [NSTimer scheduledTimerWithTimeInterval:2.0 target:self selector:@selector(makeVisibleButtons) userInfo:nil repeats:NO]; 
    [timer setAccessibilityHint:@"timer"]; 
} 

-(BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { 
    // JUST SO THAT HANDLE URL CAN GET CALLED 

return YES; 


} 

所以我按了一個按鈕來調用這個IBAction。 NSTimer是不相關的,它只是爲了一些按鈕的外觀。現在,這兩種方法永遠不會被調用(當我登錄吧):

- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url 
sourceApplication:(NSString *)sourceApplication annotation:(id)annotation { 
    ConnectToFB *connect = [[ConnectToFB alloc] init]; 
    return [connect.facebook handleOpenURL:url]; 
    NSLog(@"url"); 
    [connect release]; 
} 

- (void)fbDidLogin { 

    NSLog(@"log in"); 

    NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; 
    [defaults setObject:[facebook accessToken] forKey:@"FBAccessTokenKey"]; 
    [defaults setObject:[facebook expirationDate] forKey:@"FBExpirationDateKey"]; 
    [defaults synchronize];  
} 

應用程序ID是最新的,並且在信息的plist我的URL方案也是最新的。這裏有什麼問題?

回答

相關問題