2012-06-28 58 views
2

我想製作一個應用程序,要求在Facebook對話框中進行身份驗證,如果Facebook應用程序安裝在iPhone或未安裝。如果我註銷Facebook,那麼它應該從Facebook註銷。我已經使用Facebook的IOS-SDK爲Facebook API我的代碼如下:打開Facebook對話框進行身份驗證,而不是iPhone中的安裝Facebook應用程序?

- (void)viewDidLoad 
{ 
    _facebook=[[Facebook alloc] initWithAppId:appId andDelegate:self]; 

    self.navigationController.navigationBarHidden = YES; 
    NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; 
    if ([defaults objectForKey:@"FBAccessTokenKey"] && [defaults objectForKey:@"FBExpirationDateKey"]) 
    { 
     _facebook.accessToken = [defaults objectForKey:@"FBAccessTokenKey"]; 
     _facebook.expirationDate = [defaults objectForKey:@"FBExpirationDateKey"]; 
    } 

    [super viewDidLoad]; 
} 

//登錄按鈕竊聽

-(IBAction)Login 
{ 
    NSLog(@"login called"); 

    if (![self connected]) 
    { 
     UIAlertView *alert=[[UIAlertView alloc] initWithTitle:@"Connection" message:@"Internet is not Connected" delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil]; 
     [alert show];[alert release]; 
    } 
    else 
    { 
     if (suggestion==nil) 
     { 
      suggestion=[[Suggestions alloc] initWithNibName:@"Suggestions" bundle:nil]; 
     } 
     [suggestion setReqFlg:YES]; 

     if (![_facebook isSessionValid]) 
     { 
      NSLog(@"sesssion invalid u have to login..."); 
      [_facebook authorize:nil]; 
     } 
     else 
     { 
      NSLog(@"valid and going on next page called graph API ");  

      [_facebook requestWithGraphPath:@"me?fields=id,name" andDelegate:self]; 
      suggestion.parentView=self; 
      [self.navigationController pushViewController:suggestion animated:YES]; 
     } 
    } 
} 



- (void)fbDidLogin 
{ 
    NSLog(@"facebook did first login.."); 
    NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; 
    [defaults setObject:[_facebook accessToken] forKey:@"FBAccessTokenKey"]; 
    [defaults setObject:[_facebook expirationDate] forKey:@"FBExpirationDateKey"]; 
    [defaults synchronize]; 
    NSLog(@"called gtraph from login in facebook "); 
    [_facebook requestWithGraphPath:@"me?fields=id" andDelegate:self]; 
    if (suggestion==nil) 
    { 
     suggestion=[[Suggestions alloc] initWithNibName:@"Suggestions" bundle:nil]; 
    } 
    suggestion.parentView=self; 
    [self.navigationController pushViewController:suggestion animated:YES]; 
} 

- (void)fbDidLogout 
{ 
    NSLog(@"logout"); 
    NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; 

    [defaults removeObjectForKey:@"FBAccessTokenKey"]; 
    [defaults removeObjectForKey:@"FBExpirationDateKey"]; 
    [defaults removeObjectForKey:@"FBUserId"]; 

    [defaults synchronize]; 
} 

請問我有facebook.m文件或​​有變化是另一種方式來做到這一點。每次我點擊登錄按鈕應顯示Facebook登錄對話框,如果Facebook是註銷,並導航到下一個視圖,如果Facebook是登錄。不要打開facebook應用程序安裝在iPhone登錄目的。

提供您的評論或回答我真的需要它。 謝謝你!

+0

上,當你運行它 – Dustin

+0

如果我點擊登錄按鈕,它會安裝在我的iPhone authentication.I Facebook應用程序想會發生什麼在Facebook對話框中顯示它。 – Warewolf

+0

我敢肯定,蘋果不會讓你從你自己的應用程序登錄到Facebook – Dustin

回答

1

其facebook.m文件那麼簡單去,搜索與FBAppAuth和你有3_4的結果,如: -

[self authorizeWithFBAppAuth:YES safariAuth:YES]; 

只是YES改爲NO,如: -

[self authorizeWithFBAppAuth:NO safariAuth:NO]; 

改變它僅在facebook.m中編譯並運行時,您在點擊登錄按鈕時獲得了fblogin對話框:)

編輯

我得到了我的登錄對話框,我的應用程序的登錄頁面

facebook login dialog

+0

尼廷Gohel先生這是Safari瀏覽器不適用於Facebook應用程序如果Facebook應用程序安裝在您的iPhone上,那麼它不會打開對話框認證。 – Warewolf

+0

它爲我試圖這個代碼和實現我自己的工作和其工作正常: - 閱讀完整的方法authorizewithFBAppAuth:否或是 –

+0

請在您的idevice上安裝facebook應用程序,然後檢查您的設備上。 – Warewolf

相關問題