2014-03-28 53 views
0

我試圖將Facebook登錄整合到我的應用程序,並沒有運氣過去兩天這樣做。Facebook的登錄iOS的不工作

登錄按鈕的工作原理:它使我登錄,然後將文本更改爲「註銷」。

但是,沒有其他的工作。我無法獲取名稱,我試過在我的代碼中隨機放置NSLog聲明,但唯一打印的是viewDidLoad中的聲明。沒有其他的。

這裏是我的代碼(我使用的是圖形化的實施者均基於按鈕)

- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation { 

    NSLog(@"Print 1"); 
    // Call FBAppCall's handleOpenURL:sourceApplication to handle Facebook app responses 
    BOOL wasHandled = [FBAppCall handleOpenURL:url sourceApplication:sourceApplication]; 

    // You can add your app-specific url handling code here if needed 

    return wasHandled; 
} 

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 
{ 
    NSLog(@"Print 2"); 
    // Override point for customization after application launch. 
    [FBLoginView class]; 
    self.loginView.readPermissions = @[@"basic_info", @"email", @"user_likes"]; 
    NSLog(@"Initiating the FBLoginView"); 
    return YES; 
} 

- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil 
{ 
    NSLog(@"Print 3"); 
    self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil]; 
    if (self) { 
    NSLog(@"Print 4"); 
    } 
    return self; 
} 

- (void)loginViewFetchedUserInfo:(FBLoginView *)loginView user:(id<FBGraphUser>)user { 
    NSLog(@"Print 5"); 
} 

- (void)loginViewShowingLoggedInUser:(FBLoginView *)loginView { 
    NSLog(@"Print 6"); 
} 

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 
    // Do any additional setup after loading the view. 
    NSLog(@"Print 7"); 
} 

- (void)didReceiveMemoryWarning 
{ 
    [super didReceiveMemoryWarning]; 
    // Dispose of any resources that can be recreated. 
} 

我到哪裏,我要去的地方readPermissions非常不確定,但我已經試過幾乎所有。我也嘗試過不同的東西,如

FBLoginView *loginView = [[FBLoginView alloc] init]; 
loginView.readPermissions = @[@"basic_info", @"email", @"user_likes"]; 

等,但沒有什麼作品。現在我已經通過IBOutletloginView連接到我的.h文件,不知道這是如何完成的。 Facebook的在線指南真的很糟糕...

任何人都可以幫我嗎?爲什麼我的任何一條NSLog語句都不打印除viewDidLoad之外的任何內容?

回答

2

您忘記分配登錄方法的委託屬性。您需要

self.loginView.delegate = self; 

或者委託方法將不會被調用

+0

我會在哪裏做? – Aleksander

+0

對不起,如果你有一個loginview的佔位符,或者在它出現的控制器的'viewDidLoad'方法中,這個會被添加到IB中。 – mrosales

+0

對不起,我忘了接受你的回答。無論如何,它的工作。前一陣子發現了它。謝謝! :) – Aleksander