Получение ошибки ACErrorPermissionDenied (код ошибки 7) для Facebook при использовании Social Framework
Я получаю идентификатор и имя учетной записи Facebook пользователя, используя ACAccountStore
,
Когда появляется предупреждение, запрашивающее у пользователя разрешение ("XYZ хотел бы получить доступ к вашему каналу новостей и профилю"), и пользователь нажимает "Не разрешать", я получаю код ошибки 7, т.е. ACErrorPermissionDenied
,
Но после этого, если я захожу в "Настройки" и включаю настройки Facebook для своего приложения и снова в приложении, снова появляется предупреждение, и пользователь нажимает "ОК", я все еще получаю код ошибки 7 (ACErrorPermissionDenied
). Так что он включен в настройках, и я нажал "ОК" в приложении, но он все еще дает мне эту ошибку.
Если в первый раз я разрешаю доступ и после этого включаю или выключаю доступ из настроек, это выдает мне правильную ошибку или успех. Эта проблема возникает, только если пользователь нажимает "Не разрешать" в первый раз. Если он не разрешит это в приложении, когда он спросит, то он не сможет разрешить доступ FB к моему приложению.
Я протестировал это на iOS 6.0 и 6.0.1, используя следующий код:
NSMutableArray *acAccountArray = [[NSMutableArray alloc] init];
ACAccountStore *accountStore = [[ACAccountStore alloc] init];
ACAccountType *accountType =
[accountStore accountTypeWithAccountTypeIdentifier:ACAccountTypeIdentifierFacebook];
[accountStore
requestAccessToAccountsWithType:accountType
options:[self getOptionDictionary:ACAccountTypeIdentifierFacebook permission:[[NSArray alloc]initWithObjects:@"read_stream",@"user_about_me",@"email", nil]]
completion:^(BOOL granted, NSError *error) {
if(granted) {
// Doing what I want
} else {
NSLog(@"Error: %@", error);
}
}];
-(NSDictionary *)getOptionDictionary:(NSString * const)accountTypeIdentifier
permission:(NSArray*)permissionArray {
NSDictionary *options = nil;
if (accountTypeIdentifier == ACAccountTypeIdentifierFacebook) {
options = @{
@"ACFacebookAppIdKey" : @"dhksadhakjdhkshd",
@"ACFacebookPermissionsKey" : permissionArray,
@"ACFacebookAudienceKey" : ACFacebookAudienceFriends};
}
return options;}
2 ответа
Ваше приложение все еще находится в "режиме песочницы" на Facebook? Если да, это будет видно только администраторам и разработчикам. Если вы вошли в Facebook на своем устройстве, не имея прав администратора вашего приложения, вы можете получить эту ошибку. Отключение режима песочницы решило проблему для меня.
Это потому, что вы удалили свое приложение в Facebook, даже если я столкнулся с той же проблемой. Если вы пытаетесь войти в систему любым другим способом, кроме встроенного входа iOS, то добавляется приложение facebook, если оно отсутствует или удалено пользователем в настройках Facebook, но в настоящий момент этого не происходит, если вы пытаетесь войти с использованием встроенного входа iOS. Пожалуйста, сообщите мне, если вы сталкиваетесь с решением для этой проблемы, а также с его помощью я могу удалить свое приложение, указанное в настройках iOS на Facebook, в этом случае, потому что, если я удаляю, а затем пользователь повторяет попытку входа в систему, он работает правильно.