3

目前,我正在构建一个应用程序,该应用程序利用新的 iOS 6 社交框架来收集存储在 iOS 中的 Facebook 帐户,并创建一个自定义 SLRequest 以将状态更新和照片发布到用户的时间轴。我在 Facebook 开发中心配置了一个应用程序,并收到了我的应用程序 ID,但是,当我尝试通过 ACAccountStore 请求 Facebook 帐户时,我总是收到以下本地化错误消息:

2012-10-14 17:34:46.429 Status Update[12042:4c0b] The operation couldn’t be completed. (com.apple.accounts error 8.)

这是我目前用于处理从帐户商店获取帐户的请求的代码:

NSDictionary *options = @{
@"ACFacebookAppIdKey" : @"XXXXXXXXXXXXXXX",
@"ACFacebookPermissionsKey" : @[@"publish_stream"],
@"ACFacebookPermissionGroupKey" : @[@"write", @"email"]};

self.facebookStore = [[ACAccountStore alloc] init];
self.facebookAccountType = [self.facebookStore accountTypeWithAccountTypeIdentifier:ACAccountTypeIdentifierFacebook];
self.facebookAccount = [[ACAccount alloc] initWithAccountType:self.facebookAccountType];
[self.facebookStore requestAccessToAccountsWithType:self.facebookAccountType options:options completion:^(BOOL granted, NSError *error)
{
    if (granted)
    {
        NSArray *accounts = [self.facebookStore accountsWithAccountType:self.facebookAccountType];
        self.facebookAccount = [accounts lastObject];
        NSLog(@"Facebook Account Enabled: %@", _facebookAccount);
    }
    else
    {
        NSLog([NSString stringWithFormat:@"%@", error.localizedDescription]);
    }
}];
4

1 回答 1

2

请看一下:http: //developer.apple.com/library/ios/#releasenotes/General/RN-iOSSDK-6_0/_index.html

并注意:

当请求访问 Facebook 帐户时,您的选项字典中唯一需要的键是 ACFacebookAppIdKey。ACFacebookPermissionGroupKey 和 ACFacebookAppVersionKey 现已过时。

如果您在 ACFacebookPermissionsKey 下请求写入权限,例如 publish_stream,则必须为 ACFacebookAudienceKey 提供一个值,该值可以是 ACFacebookAudienceEveryone、ACFacebookAudienceFriends 或 ACFacebookAudienceOnlyMe 之一。

NSDictionary *options = @{
ACFacebookAppIdKey: @"XXXXXXXX",
ACFacebookPermissionsKey: @[@"publish_stream"],
ACFacebookAudienceKey: ACFacebookAudienceFriends
};
于 2012-10-27T00:54:09.170 回答