2011-08-31 2 views
6

У меня есть приложение для iPhone/iPad, которое выполняет базовое редактирование фотографий и дает пользователю возможность загружать готовый продукт в Facebook. Приложение имеет более 100 000 пользователей, и большинство из них, похоже, не имеют проблем с загрузкой своих фотографий в Facebook. Тем не менее, есть несколько пользователей, которые не могут загружать свои фотографии независимо от того, что они пытаются. Я работал с ними, чтобы убедиться, что это не разрешения приложений или настройки Facebook, которые блокируют их и не могут найти там никаких проблем. Поэтому мне интересно, не делаю ли я что-то неправильно с FBConnect, из-за чего проблема возникает из-за этого. Вот код:iOS: загрузка фотографий в Facebook не всегда

- (void)initFacebook { 
    if(self.facebook == nil) { 
    Facebook *fb = [[Facebook alloc] init]; 
    self.facebook = fb; 
    [fb release]; 
    } 

    if([self.facebook isSessionValid]) { 
    [[NSNotificationCenter defaultCenter] postNotificationName:@"FacebookIsReady" 
                object:nil 
                userInfo:nil]; 

    } else { 
    NSArray *perms = [NSArray arrayWithObjects:@"publish_stream", @"user_likes", nil]; 
    [self.facebook authorize:MY_FB_APP_ID permissions:perms delegate:self]; 
    } 
} 

-(void)fbDidLogin { 
    [[NSNotificationCenter defaultCenter] postNotificationName:@"FacebookIsReady" 
                object:nil 
                userInfo:nil]; 
} 

// this is in a different class 
- (void)facebookIsReady:(NSNotification *)notification {  
    AppDelegate *appDelegate = (AppDelegate *)[[UIApplication sharedApplication] delegate]; 
    NSMutableDictionary *params = [NSMutableDictionary dictionaryWithObjectsAndKeys:self.theImage, @"source", nil]; 

    [appDelegate.facebook requestWithGraphPath:@"/me/photos" 
             andParams:params 
            andHttpMethod:@"POST" 
             andDelegate:appDelegate]; 
} 

В FBRequestDelegate didLoad всегда вызывается, даже если фото не появляется в профиле Facebook. Итак, я получаю код, который никогда не проваливается, но фотография не всегда появляется в профиле Facebook.

Возможно ли, что приложение не может создать новый альбом в профиле пользователя? Я видел, как другие сообщали об этой проблеме раньше в разных группах, но никогда не нашли реального решения. Благодарю.

ответ

0

Вы должны включить user_photos в ваших разрешениях массива так:

NSArray *permissions = [[NSArray alloc] initWithObjects: 
    @"user_photos", 
    @"publish_stream", 
    @"user_likes", 
    nil]; 

Вот список всех разрешений: https://developers.facebook.com/docs/reference/api/permissions/

+0

Чтобы добавить к этому: без 'user_photos', если фотография будет загружена успешно, попросите пользователя вручную перемещаться в их фотоальбомов и ткнуть вокруг немного. Если это действительно работает, они, вероятно, столкнутся с пользовательским интерфейсом, который сообщает им, что у них есть ожидающие загрузки, которые они должны одобрить вручную. Диалог очень занижен, поэтому его легко пропустить. (Кроме того, для того, что стоит, вероятно, также предусмотрена настройка конфиденциальности вручную, которую пользователи могут переключать, чтобы обеспечить соблюдение этого поведения даже при включенном разрешении 'user_photos' - просто гадать.) – toblerpwn

0
  • Загрузка фото на Facebook соперничает Social Framework гораздо проще.
  • Pleae проверить ссылку ниже Fabecook Sharing
Смежные вопросы