2011-08-31 19 views
6

Ho un'app per iPhone/iPad che esegue alcune modifiche di base alle foto e offre all'utente la possibilità di caricare il prodotto finito su Facebook. L'app ha più di 100.000 utenti e la maggior parte sembra non avere problemi a caricare le loro foto su Facebook. Tuttavia, ci sono una manciata di utenti che non riescono a far caricare le loro foto, qualunque cosa provino. Ho lavorato con loro per assicurarmi che non siano permessi app o le impostazioni di Facebook che li bloccano e non riesco a trovare alcun problema lì. Quindi mi chiedo se sto facendo qualcosa di sbagliato con FBConnect che sta causando il problema a saltar fuori una volta ogni tanto. Ecco il codice:iOS: la foto caricata su Facebook non viene sempre caricata

- (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]; 
} 

Nel FBRequestDelegate il didLoad è sempre chiamato, anche quando la foto non compare nel profilo di Facebook. Quindi quello che sto ottenendo è che il codice non sembra mai fallire ma la foto non appare sempre sul profilo di Facebook.

È possibile che l'app non sia in grado di creare un nuovo album sul profilo utente? Ho visto altri segnalare questo problema prima su vari gruppi ma non ho mai trovato una soluzione reale. Grazie.

risposta

0

è necessario includere user_photos in autorizzazioni serie in questo modo:

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

Ecco l'elenco di tutte le autorizzazioni: https://developers.facebook.com/docs/reference/api/permissions/

+0

Per aggiungere a questo: senza 'user_photos', se la foto viene caricata con successo, chiedere all'utente di navigare manualmente a loro album di foto e curiosare un po 'intorno. Se funziona davvero, probabilmente incontreranno un'interfaccia utente che dice loro che hanno caricamenti in sospeso che devono approvare manualmente. Il dialogo è molto sottovalutato, quindi è facile non vederlo. (Inoltre, per quello che vale c'è probabilmente anche un'impostazione di privacy manuale che gli utenti possono attivare per forzare questo comportamento anche con l'autorizzazione "user_photos' inclusa - solo a indovinare.) – toblerpwn

0
  • Carica Foto su Facebook vie quadro sociale è molto più facile. controllare
  • Pleae sul link qui sotto Fabecook Sharing
Problemi correlati