2015-03-31 13 views
6

Sto tentando di impostare la condivisione di Facebook con FBSDK nella mia app iOS.iOS Facebook SDK MessageDialog error 202

Ho letto la documentazione here, e attualmente hanno

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

lavorare con un content object - FBSDKShareLinkContent.

Tuttavia, al momento cercando di utilizzare il metodo simile a quello specificato per la condivisione di Facebook Messenger,

[FBSDKMessageDialog showWithContent:content delegate:self]; 

sto ottenendo un incidente. Ho rilevato l'errore e l'ho registrato in uno dei metodi delegato, e afferma "L'operazione non può essere completata. (Com.facebook.sdk.share errore 202.) "

Ho cercato questo specifico errore ma non ho trovato nulla direttamente con lo stesso errore. Ecco il codice completo

FBSDKShareLinkContent *content = [[FBSDKShareLinkContent alloc] init]; 
content.contentURL = [NSURL URLWithString:kAPPShareLink]; 
content.contentDescription = kAPPShareDescription; 
content.contentTitle = kAPPShareTitle; 

if (buttonIndex == 0) { 
    // Facebook 

    [FBSDKShareDialog showFromViewController:self withContent:content delegate:self]; 
} else if (buttonIndex == 1) { 
    // Facebook Messenger 

    [FBSDKMessageDialog showWithContent:content delegate:self]; 
} 

Perdonami se mi manca qualcosa di ovvio, ma come this documentation legge, suppongo il metodo FBSDKMessageDialog showWithContent: funzionerebbe allo stesso modo di FBSDKShareDialog showFromViewController: che sta lavorando per me.

  • Sto usando l'ultima versione di XCode con iOS8.
+0

Non è stato possibile riprodurre l'errore. Quale versione dell'app Facebook Messenger usi? Passi all'app Messenger? Facebook SDK include il progetto RPSSample, puoi riproporlo con quel progetto? – amudi

+0

Ho appena ricevuto lo stesso errore. Hai risolto questo problema? – demon9733

+0

Non risolto. L'ho riscontrato utilizzando un pulsante personalizzato, ma successivamente modificato in UIActivitySheet – rld001

risposta

1

Nota: questo si inserisce più come un commento, ma non hanno abbastanza reputazione ancora inviare commenti

ottengo lo stesso errore, sia Facebook e Messenger vengono aggiornati.

ho controllato i miei permessi con

[[FBSDKAccessToken currentAccessToken] permissions] 

e penso di avere abbastanza:

"contact_email", 
"publish_stream", 
"user_likes", 
"publish_checkins", 
"video_upload", 
"create_note", 
"basic_info", 
"publish_actions", 
"public_profile", 
"photo_upload", 
"status_update", 
email, 
"user_friends", 
"share_item" 

ho provato allo stesso modo di OP, e anche io provato che:

FBSDKMessageDialog *messageDialog = [[FBSDKMessageDialog alloc] init]; 
[messageDialog setShareContent:content]; 
messageDialog.delegate = self; 

if ([messageDialog canShow]) { 
    [messageDialog show];   
} 

[messageDialog canShow] restituisce NO e il metodo delegato s cattura il fallimento con l'errore 202 descritto dall'OP.

Ho provato a utilizzare FBSDKSendButton e non sembra funzionare neanche.

D'altra parte, FBSDKShareDialog funziona perfettamente ...

Spero che questo aiuta a risolvere il problema.

6

ho dovuto fare il login e poi Post, che è come funzionava:

FBSDKLoginManager *login = [[FBSDKLoginManager alloc] init]; 


[login logInWithReadPermissions:@[@"email"] handler:^(FBSDKLoginManagerLoginResult *result, NSError *error) 
{ 

    if (error) 
    { 
    // Process error 
    } 
    else if (result.isCancelled) 
    { 
     // Handle cancellations 
    } 
    else 
    { 
     FBSDKShareLinkContent *content = [[FBSDKShareLinkContent alloc] init]; 
     content.contentURL = [NSURL URLWithString:@"https://developers.facebook.com/"]; 

     FBSDKMessageDialog *messageDialog = [[FBSDKMessageDialog alloc] init]; 
     messageDialog.delegate = self; 
     [messageDialog setShareContent:content]; 

     if ([messageDialog canShow]) 
     { 
      [messageDialog show]; 
     } 
     else 
     { 
      // Messenger isn't installed. Redirect the person to the App Store. 
      [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"https://itunes.apple.com/en/app/facebook-messenger/id454638411?mt=8"]]; 
     } 

    } 
}]; 

e Share Delegato:

- (void)sharer:(id<FBSDKSharing>)sharer didCompleteWithResults:(NSDictionary *)results 
{ 
    NSLog(@"didCompleteWithResults"); 
} 

- (void)sharer:(id<FBSDKSharing>)sharer didFailWithError:(NSError *)error 
{ 
    NSLog(@"didFailWithError ::: %@" , error); 
} 

- (void)sharerDidCancel:(id<FBSDKSharing>)sharer 
{ 
    NSLog(@"sharerDidCancel"); 
} 

Edit:

[MessageDialog canShow] non ha prodotto alcun su l'iPad funziona perfettamente su iPhone

Pubblicato il problema su Facebook Developers forum.

+0

Grazie per l'input. Non sto più implementando il codice nella mia applicazione per testare, ma se qualcun altro lo usa, per favore conferma e darò risposta accettata – rld001

+0

L'ho usato in una delle mie app, ma non so se lo faccia qualcun altro. – aks5686

+0

Sono riuscito a implementarlo e funziona fino a quando [messageDialog canShow]. Salta altrimenti, ma penso che sia perché lo sto eseguendo su Simulator. Puoi approfondire se riesco a testare l'invio di messaggi sul simulatore? Altrimenti funziona perfettamente. – Septronic

1

Questo ha fatto nuovamente esplodere in una ricerca su Internet. Al giorno d'oggi, non v'è una risposta semplice per l'errore con il codice di Message dialog is not available202:

Facebook's documentation:

Nota: attualmente la finestra di messaggio non è supportata su iPad.