2012-03-23 4 views
0


나는 이상한 문제에 직면하고있다.
정확한 사용자 이름과 암호를 입력해야하는 경우. 로그인 버튼을 두 번 누르면 (2 초 간격으로) 팝업이 사라집니다. FB 버튼을 다시 누르면 공유 화면으로 이미 로그인되어 있습니다.Facebook 팝업 문제 - iOS

내가 단 한 번 누르면 잘 작동합니다.

예상 : 로그인 성공 후 팝업의 공유 화면으로 이동합니다.

다른 문제는 사용자 이름을 입력 한 후 처음으로 내 공유와 암호가 작동하지 않는 경우가 있습니다.

10 번에서 9 번 작동하지만 때로는 새로 설치 한 후에 FB 벽에 게시하지 않습니다.

어떤 종류의 제안 이라든지 정말 고맙게 생각합니다.

+0

일부 코드를 게시 할 수 있습니까 ?? –

+0

한번 쯤은 문제를 경험했습니다. 코드를 작성하면 반드시 도와 드리겠습니다. –

답변

0

나를 위해 완벽하게 작동하는이 코드를 사용해보십시오.

-(void)buttonPressed:(id)sender{ 
facebook = [[Facebook alloc] initWithAppId:@"YOUR_APP_ID" 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]; 
}else{ 
[self postWall]; 
} 
// Pre 4.2 support 
- (BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url { 
    return [facebook handleOpenURL:url]; 
} 
- (void)fbDidLogin { 
    NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; 
    [defaults setObject:[facebook accessToken] forKey:@"FBAccessTokenKey"]; 
    [defaults setObject:[facebook expirationDate] forKey:@"FBExpirationDateKey"]; 
    [defaults synchronize]; 
    [self postWall]; 
} 
-(void)postWall{ 

    NSMutableDictionary* params = [NSMutableDictionary dictionaryWithObjectsAndKeys: 
            @"https://developers.facebook.com/docs/reference/dialogs/",@"link", 
            @"http://fbrell.com/f8.jpg",@"picture", 
            @"Facebook Dialogs",@"name", 
            @"Reference Documentation",@"caption", 
            @"Using Dialogs to interact with users.",@"description", 
            @"Facebook Dialogs are so easy!",@"message", 
            nil]; 

    [[self facebook] dialog:@"feed" andParams:params andDelegate:self]; 

} 

에게 앱 ID를 추가하는 것을 잊지 마십시오.