2012-06-28 54 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

相关问题