2012-07-18 2 views
-3

안녕하세요. 이제 페이스 북의 iOS SDK를 시작하고 페이스 북에 쉽게 로그인 할 수 있습니다. 그러나 사용자의 성명을 얻는 방법을 알아내는 데 어려움이 있습니다. UILabel. 또한 UIViewController에서이 일을하고 있으며 지금까지 인터넷에서 보았던 모든 것을 응용 프로그램 대리인에서 수행했습니다. 그러나 위임자가 수행하지 않으려 고합니다. 할 일이 적절하지 않습니다. 이 UIViewController 원하는 그래서 단추를 누르면 페이스 북에 로그인 할 수 있습니다. 페이스 북 SDK는 처음 사용했을 때와 마찬가지로 복잡해 보입니다.UIViewController에서 페이스 북의 전체 이름 얻기

편집 : 괜찮습니까?

-(void)createfbInstance { 

Facebook* fb = [[Facebook alloc] initWithAppId:FB_APP_ID andDelegate:self]; 
self.facebook = fb; 

NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; 
if ([defaults objectForKey:@"FBAccessTokenKey"] 
    && [defaults objectForKey:@"FBExpirationDateKey"]) { 
    facebook.accessToken = [defaults objectForKey:@"FBAccessTokenKey"]; 
    facebook.expirationDate = [defaults objectForKey:@"FBExpirationDateKey"]; 
} 

if (![facebook isSessionValid]) { 
    NSArray* permissions = [[NSArray alloc] initWithObjects:@"user_about_me", nil]; 
    [facebook authorize:permissions]; 
} 
} 

그래서 난 그냥 그럼 난 그래프 경로 요청을 보내려고 페이스 북의 튜토리얼 처럼 설정 : 다음

- (void)fbDidLogin { 

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

FBAppDelegate* appDelegate = (FBAppDelegate*)[[UIApplication sharedApplication] delegate]; 
[appDelegate.facebook requestWithGraphPath:@"name" andDelegate:self]; 
} 

시도를하고 요청을받을 이 뷰 컨트롤러에 :

- (void)request:(FBRequest *)request didLoad:(id)result { 

} 

죄송합니다. 그 방법으로 코드를 삭제했습니다. 는 다음 대리자에 나는 페이스 북 속성

@property (nonatomic, retain) Facebook* Facebook; 

이 파일에있는 다른 코드가 있지만 가장 중요한 코드처럼 보였다 있습니다. 당신은 당신이 (헤더 파일) 다음 파일을 포함 할 필요가에서 페이스 북의 API에 접근 할 필요가 어떤 클래스에서

+0

은 앱 위임에 게시 한 첫 번째 메소드 ('createfbInstance')입니까? 편집자가보기 컨트롤러에 있다고 말했고, 이것이 사실이라면 해당 메서드를 대리자에 넣고 호출되는지 확인합니다. 'FbDidLogin'과 같은 일입니다. 이것은'FBSessionDelegate'의 델리게이트 메소드로,'fbDidLogin'의 마지막 두 줄을 제거하고 어딘가에 뷰 컨트롤러에 넣습니다. –

+0

알았어! 도와 줘서 고마워. –

+0

그 중 하나도 작동하지 않았다. –

답변

1

:

#import "FBConnect.h" 
#import "YOUR_APP_DELEGATE.h" 

또한 당신의 클래스가 FBRequestDelegate 위임을 구현합니다.

그런 다음 그것을 사용하기 위해 당신은 단순히 다음을 수행 : 당신이 지금 당신이 API에 액세스 할 수 있도록 대리인에 당신이 가지고있는 페이스 북의 속성에 액세스 할 수 있습니다와

YOURAPPDELEGATE *appDelegate = (YOURAPPDELEGATE*)[[UIApplication sharedApplication] delegate]; 

합니다.

이제 응답을받을 수 있도록보기 컨트롤러에 - (void)request:(FBRequest *)request didLoad:(id)result 메서드를 추가해야합니다.

그래서 지금 당신은

 [appDelegate.facebook requestWithGraphPath:@"APICALLHERE" andDelegate:self]; 

를 호출 할 수 있습니다 그리고 당신은 지금 당신이 그때 당신이 원하는대로 할 수있는 request:didLoad: 방법의 응답을 받게됩니다.

+0

이 dod는 나에게 효과가 없습니다. 나는 방법을 생각하지 않는다 - (void) request : (FBRequest *) request didLoad : (id) result가 호출 중임 –

+0

대리인의 속성이 Facebook이라고 불렀습니까? (거기에는'Facebook * facebook'과 헤더에 @property (nonatomic, retain) Facebook * facebook이 있습니까?). 내 코드가 작동하는지, 페이스 북 개발자 사이트의 iOS 자습서에 언급되어있을뿐만 아니라 현재 내가 작업중인 앱에서도이 코드를 사용하고 있습니다. –

+0

예. 정확히 헤더에있는 코드입니다. 앱에서 사파리로 전환했지만 로그인 할 수 없습니다. –

관련 문제