目前,我正在构建一个应用程序,该应用程序利用新的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]);
}
}];
答案 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
};