使用SDK登录Facebook

问题描述:

如果用户在他的iPhone设置中设置了Facebook帐户,我可以获得用户个人资料权限。为此,我使用了下面的代码:使用SDK登录Facebook

if(!_accountStore) 
    _accountStore = [[ACAccountStore alloc] init]; 

ACAccountType *facebookTypeAccount = [_accountStore accountTypeWithAccountTypeIdentifier:ACAccountTypeIdentifierFacebook]; 

[_accountStore requestAccessToAccountsWithType:facebookTypeAccount 
             options:@{ACFacebookAppIdKey: @"app_id", ACFacebookPermissionsKey: @[@"email"]} 
            completion:^(BOOL granted, NSError *error) { 
             if(granted){ 
              NSArray *accounts = [_accountStore accountsWithAccountType:facebookTypeAccount]; 
              _facebookAccount = [accounts lastObject]; 
              NSLog(@"Success"); 

              [self me]; 
             }else{ 
              NSLog(@"go to iphone settings"); 

             } 
            }]; 






-(void)me 
    { 

    NSURL *meurl = [NSURL URLWithString:@"https://graph.facebook.com/me"]; 

    SLRequest *merequest = [SLRequest requestForServiceType:SLServiceTypeFacebook 
               requestMethod:SLRequestMethodGET 
                 URL:meurl 
               parameters:nil]; 

    merequest.account = _facebookAccount; 

    [merequest performRequestWithHandler:^(NSData *responseData, NSHTTPURLResponse *urlResponse, NSError *error) { 
     NSString *meDataString = [[NSString alloc] initWithData:responseData encoding:NSUTF8StringEncoding]; 

     NSLog(@"%@", meDataString); 

    }]; 
} 

如果用户没有设置自己的Facebook帐户,然后控制就会转移到别的部分即去iphone设置。在这部分内容中,我想打开Facebook登录页面,以便用户能够登录他的Facebook帐户,而无需进行iPhone设置。那么我们怎么能通过SDK打开Facebook登录。请帮我解决这个问题。

在此先感谢。

在这种情况下,如果您没有使用用户帐户(如果他/她没有在iOS设置中设置),则需要在应用程序上实现Facebook SDK(https://developers.facebook.com/ios/)。这很简单,只需按照以下步骤操作即可(https://developers.facebook.com/docs/getting-started/facebook-sdk-for-ios/)。

之后,您可以使用FBSession's方法+openActiveSessionWithReadPermissions:allowLoginUI:completionHandler:执行用户登录。

是真实的,在我的申请,我甚至不尝试登录苹果的requestAccessToAccountsWithType:options:completion:;与最新的Facebook SDK的用户,默认行为是:

  1. 尝试与用户帐户设置密码在iOS设置上;
  2. 如果未找到帐户,则尝试打开Facebook应用程序以请求登录/权限;
  3. 如果Facebook应用程序未安装在设备上,它会在Safari上打开Facebook,作为后备。
+0

我试图与Facebook登录的时候,如果一个Facebook帐户在手机设置中配置了“FBSessionStateClosedLoginFailed”。我不知道为什么这是发生。 – 2014-07-11 05:00:52