1

我想将 Facebook 帐户保存到ACAccountStoreiOS 中,

  1. accessTocken将从 facebookSDK 获得,但如何获得令牌和秘密
  2. 如何保存到ACAccountStore

提前致谢。

- - - 编辑 - - - -

我有一个使用 facebook 登录的应用程序,在登录信息之后需要分享他选择的照片。我的用例是,

  1. 如果帐户已经在设置应用程序中,那么我可以将其用于登录和共享。

  2. 用户使用 safari 或 webview 登录,然后我可以如何进行共享。

    一个。facebook SDK 说如果用户需要使用 OS 集成共享控制器,login method used to authenticate the user must be native iOS 6.0 authentication..

    湾。如果我需要共享 facebook SDK 使用 facebook App 提供的选项,我不想要这个选项,因为我想尽可能避免 App 切换。

这个怎么解决。。

4

1 回答 1

0

要做到这一点,你应该有一个访问令牌和秘密,

if (self.accountStore == nil) {
    self.accountStore = [[ACAccountStore alloc] init];
}

//make credentials to assign to ACAccount 
ACAccountCredential *credential = [[ACAccountCredential alloc] initWithOAuthToken:accesstoken tokenSecret:secret];
ACAccountType *acctType =[self.accountStore accountTypeWithAccountTypeIdentifier:ACAccountTypeIdentifierFacebook];
ACAccount *newAccount = [[ACAccount alloc] initWithAccountType:acctType];

newAccount.credential = credential;

NSDictionary *options = [[NSDictionary alloc] initWithObjectsAndKeys:
                         "xXXXXXX", (NSString *)ACFacebookAppIdKey,
                         [NSArray arrayWithObject:@"basic_info"], (NSString *)ACFacebookPermissionsKey,
                         ACFacebookAudienceEveryone, (NSString *)ACFacebookAudienceKey,
                         nil];


[_accountStore requestAccessToAccountsWithType:acctType options:options completion:^(BOOL granted, NSError *error) {
    if (granted == YES) {
        [self.accountStore saveAccount:newAccount withCompletionHandler:^(BOOL success, NSError *error) {

            if (success) {
                NSLog(@"the account was saved!");
            }
            else {
                if ([error code] == ACErrorPermissionDenied) {
                    NSLog(@"Got a ACErrorPermissionDenied, the account was not saved!");
                }
                NSLog(@"%@",error);
            }
        }];
    }
    else {
        NSLog(@"%@ ",error);
    }
}];
于 2014-01-09T11:58:31.000 回答