2011-03-06 8 views
0

안녕 얘들 아 난 페이스 북에서 DemoApp처럼 facebook SDK를 구현하려고 애썼다. 나는 기본적으로 demoApp에서 모든 것을 복사했지만 facebook에 로그인하려고하면 문제가 발생합니다.iPhone Facebook SDK 로그인 문제

로그인 버튼을 누르면 페이스 북 앱이 열립니다. 나는 자신을 인증하고 OK를 누른다. 그런 다음 내 앱으로 리디렉션되었지만 fbDidLogin() 메소드가 호출되지 않습니다. 내 뷰 컨트롤러에서 앱 ID를 정의하고 정보 파일의 URL 스키마도 정의했습니다.

내가 누락 된 항목이 있습니까?

감사 건배 Doonot

+0

사용 권한 배열에 무엇을 전달하고 있습니까? NSLog 문을 검색하여 fbDidLogin을 호출했는지 확인 하시겠습니까? 그렇지 않다면 어떻게? 다음 핸들러 (NSLog 문 포함)를 모두 구현 했습니까? fbDidNotLogin fbDidLogout – kennbrodhagen

+0

로그를 확인하는 것만으로도 로그인 상태가 변경되면 업데이트해야하는 레이블이 있습니다. initWithNibName에서 나는 이것을 전달합니다 : _permissions = [[NSArray arrayWithObjects : @ "read_stream", @ "offline_access", nil] retain]; 그리고 예, 핸들러도 구현되었습니다! DemoApp에서와 마찬가지로 – doonot

답변

0

일부 시도 후에 나는 그것을 알아 냈습니다. Interface Builder를 사용하여 Tab Bar Application을 설정했습니다. 짐이 언급 한 바와 같이

... 
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {  
     settingsController = [[SettingsViewController alloc] initWithNibName:@"SettingsViewController" bundle:nil]; 
... 

, 나는 내 응용 프로그램 위임에 사용자 정의 URL 체계를 구현하는 것을 잊었다 : 나는 페이스 북의 로그인 방법을 구현하는 뷰 컨트롤러에 대한 참조를하기 위해 프로그래밍 방식 탭 표시 줄 응용 프로그램을 변경했다 . settingsViewController 덕분에 단순히 추가 : 그것 뿐이다

// this method is needed by the facebook login procedure 
- (BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url { 
    return [[settingsController facebook] handleOpenURL:url]; 
} 

을 이러한 변경 후에 나는 마침내 페이스 북에 로그인 할 수 있습니다.

건배, Doonot

0

fbDidLogin() 대물 C 방법이 아니다. 그것은 당신이 코드에서 가지고있는 방식입니까?

앱 위임자에서 맞춤 URL 스키마를 처리 했습니까?

+0

젠장, 내가 응용 프로그램 대리인의 일부를 놓친 것 같아요 : - (BOOL) 응용 프로그램 : (UIApplication *) 응용 프로그램 handleOpenURL : (NSURL *) url { return [[controller facebook] handleOpenURL : url]; } 기본적으로 응용 프로그램 대리자 클래스에서 tabBarController가 있습니다. tabbarcontroller를 프로그래밍 방식으로 설정하여 facebook 로그인 페이지 용 뷰 컨트롤러를 정의해야합니까? – doonot

+0

'Delegate'클래스의 인스턴스를 앱 위임자가 액세스하거나 메소드 호출을해야합니다. – Jim

+0

좀 더 정확하게 할 수 있습니까? 내가 이것을 시도하면 : - (BOOL) 응용 프로그램 : (UIApplication *) 응용 프로그램 handleOpenURL : (NSURL *) url { return [[tabBarController facebook] handleOpenURL : url]; } 그런 다음 앱이 비정상적으로 중단됩니다. 하지만 그 tabBarController는 현재 앱 위임 클래스에서 사용할 수있는 유일한 컨트롤러입니다. – doonot