ACAccountStore不检索自定义SLRequest的Facebook帐户

时间:2012-10-15 02:42:04

标签: ios facebook facebook-graph-api ios6

目前,我正在构建一个应用程序,该应用程序利用新的iOS 6 Social框架收集存储在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]);
    }
}];

1 个答案:

答案 0 :(得分: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
};