3

ユーザーが 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 のログインを開くにはどうすればよいでしょうか。この問題から私を助けてください。

前もって感謝します。

4

1 に答える 1

1

この場合、ユーザー アカウントを使用していない場合 (ユーザーが 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 を使用して Apple でユーザーをログインしようとさえしません。デフォルトの動作は次のとおりです。

  1. iOS 設定のユーザー アカウント設定でログインを試みます。
  2. アカウントが見つからない場合は、Facebook アプリケーションを開いてログイン/許可を要求しようとします。
  3. Facebook アプリがデバイスにインストールされていない場合は、フォールバックとして Safari で Facebook が開きます。
于 2013-06-06T14:31:59.497 に答える