2015-04-29 8 views
5

Sto usando il seguente codice per condividere un'immagine e alcuni messaggi sulla timeline fb utilizzando l'oggetto grafico aperto FBSDK e il contenuto grafico aperto FBSDK. Tuttavia il seguente codice non fa nulla , non viene presentata alcuna finestra di dialogo né pubblica nulla sulla timeline.am mi manca qualcosa in questo codice o questo codice non funziona nel simulatore?Condivisione di immagine fb e contenuto del messaggio all'interno dell'applicazione non funzionante utilizzando FBSDKShareDialog

- (IBAction)shareButtonPressed:(id)sender { 
    NSString *[email protected]"abcdcccdcc"; 
    NSString *title=[NSString stringWithFormat:@"%@ \n asd %@, asd %@",self.nameLabel.text,_fromDate.text,_toDate.text]; 

    FBSDKSharePhoto *photo = [[FBSDKSharePhoto alloc] init]; 
    photo.image = _profilePic.image; 
    photo.userGenerated = YES; 

    // Create an object 
    NSDictionary *properties = @{ 
           @"og:type": @"memories.memory", 
           @"og:title":title , 
           @"og:description":contentDesc 

           }; 
    FBSDKShareOpenGraphObject *object = [FBSDKShareOpenGraphObject objectWithProperties:properties]; 

    // Create an action 
    FBSDKShareOpenGraphAction *action = [[FBSDKShareOpenGraphAction alloc] init]; 
    action.actionType = @"memories.view"; 
    [action setObject:object forKey:@"memories.memory"]; 

    // Add the photo to the action 
    [action setPhoto:photo forKey:@"image"]; 

    // Create the content 
    FBSDKShareOpenGraphContent *content = [[FBSDKShareOpenGraphContent alloc] init]; 
    content.action = action; 
    content.previewPropertyName = @"memories.memory"; 

    [FBSDKShareDialog showFromViewController:self 
           withContent:content 
            delegate:nil]; 
} 

nel metodo delegato

-(void)sharer:(id<FBSDKSharing>)sharer didFailWithError:(NSError *)error 
{ 


    NSLog(@"%@",error); 
} 

log degli errori viene stampato come segue

Error Domain=com.facebook.sdk.share Code=2 "The operation couldn’t be completed. (com.facebook.sdk.share error 2.)" UserInfo=0x7faec97bb660 {com.facebook.sdk:FBSDKErrorArgumentValueKey=<FBSDKShareOpenGraphContent: 0x7faecbc16740>, com.facebook.sdk:FBSDKErrorDeveloperMessageKey=Feed share dialogs support FBSDKShareLinkContent., com.facebook.sdk:FBSDKErrorArgumentNameKey=shareContent} 
+1

Ottenere lo stesso problema qui. Penso che l'SDK di iOS sia rotto. Dovrebbe segnalarlo come un bug. – fatuhoku

+0

Ho scoperto che è possibile visualizzare tutti i valori di userInfo in NSError tramite debug. – fatuhoku

+0

@sujith, hai una soluzione? –

risposta

3

cambiamento [action setPhoto:photo forKey:@"image"]; a [object setPhoto:photo forKey:@"og:image"];

+0

il seguente link qui indica chiaramente che le foto generate dall'utente non devono essere prese dall'oggetto. Dovrebbe essere impostato sull'azione ... http://designerhubinc.blogspot.com/2012/06/user-generated-photos-in-open-graph.html – fatuhoku

+0

Questa opzione funziona solo quando si utilizza FBSDKShareAPI in contrapposizione alla finestra di dialogo . – fatuhoku

0

2: fatuhoku - grazie per il tuo commento. Hai ragione - sto usando FBSDKShareAPI. Se creo una foto con userGenerated impostato su SÌ, è allegata come foto. La foto viene inserita nel mio album (che viene creato automaticamente) con il nome della mia app e il tipo di post è 'foto'. Se io uso userGenerated impostato su NO la foto è posizionata nello stage FB interno, il post è di tipo 'link' ma posso estrarre foto dalla proprietà post 'picture' e con qualche trucco cambiando due parametri in URL immagine w = 130 e h = 130 ottieni la dimensione necessaria della mia foto. Tutto ciò che faccio con API non con i dialoghi.