Получение ошибки 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, в этом случае, потому что, если я удаляю, а затем пользователь повторяет попытку входа в систему, он работает правильно.

Другие вопросы по тегам