Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/36.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone 使用SDK登录facebook_Iphone_Objective C_Facebook_Ios6 - Fatal编程技术网

Iphone 使用SDK登录facebook

Iphone 使用SDK登录facebook,iphone,objective-c,facebook,ios6,Iphone,Objective C,Facebook,Ios6,如果用户在其iPhone设置中设置了facebook帐户,我可以获得用户配置文件权限。为此,我使用了以下代码: if(!_accountStore) _accountStore = [[ACAccountStore alloc] init]; ACAccountType *facebookTypeAccount = [_accountStore accountTypeWithAccountTypeIdentifier:ACAccountTypeIdentifierFacebook];

如果用户在其iPhone设置中设置了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登录页面,这样用户就可以在不进入iPhone设置的情况下登录他的facebook帐户。那么我们如何通过SDK打开facebook登录呢。请帮我解决这个问题


提前感谢。

在这种情况下,如果您没有使用用户帐户(如果他/她没有在iOS设置中设置),您需要在应用程序上实现Facebook SDK()。这很简单,只需遵循以下步骤()

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

诚然,在我的应用程序中,我甚至没有尝试使用Apple的
requestAccessToAccountsWithType:options:completion:登录用户
使用最新的Facebook SDK,默认行为是:

  • 尝试使用iOS设置上的用户帐户设置登录
  • 如果没有找到帐户,则尝试打开Facebook应用程序以请求登录/权限
  • 如果设备上没有安装Facebook应用程序,它会在Safari上打开Facebook,作为备用
  • 如果在电话设置中配置了facebook帐户,我在尝试登录facebook时遇到“FBSessionStateClosedLoginFailed”。我搞不懂。。为什么会发生这种情况。