Sto integrando Facebook sulla mia applicazione per condividere collegamenti di siti Web. Sto usando la finestra di dialogo Feed per realizzare questo e sto seguendo questo tutorial:
https://developers.facebook.com/docs/howtos/feed-dialog-using-ios-sdk/.nil resultURL dopo aver pubblicato correttamente con FBWebDialogs (Facebook SDK 3.5)
Sono riuscito ad accedere e pubblicare su Facebook ma volevo aggiungere un messaggio quando il post ha avuto successo. Il tutorial include questo, ma ogni volta che pubblico, vedo "Pubblicazione di storie annullate dall'utente" nel Registro che è il messaggio che viene visualizzato quando l'utente fa clic su Annulla. Inoltre ho confermato con il debugger che il parametro resultURL
ricevuto dal gestore è sempre nullo anche nei post di successo.
All'inizio pensavo fosse un problema di configurazione nel mio Facebook App
, ma ho deciso di fare un test. Ho aperto il RPSSample
fornito con il framework, aggiunto un gestore di completamento alla chiamata presentRequestsDialogModallyWithSession
nel metodo clickInviteFriends
nel controller di visualizzazione e stavo ottenendo un zero resultURL
anche in post di successo.
Mi manca qualcosa?
So che la versione 3.5 SDK è molto nuovo, ma in base alla documentazione che dovrebbe essere sempre una valida resultURL
param dopo la pubblicazione attraverso una finestra di dialogo Facebook Web, quindi non sono sicuro se è un bug o se mi' Mi manca qualche callback o gestore da qualche parte.
Nel caso, questa è la mia chiamata alla finestra di dialogo del feed . Ha piccole modifiche rispetto a quello che viene nel tutorial (in realtà è più semplice)
- (void)publish: (EntityToShare *)entityToShare {
NSMutableDictionary *params =
[NSMutableDictionary dictionaryWithObjectsAndKeys:
entityToShare.link, @"link",
nil];
// Invoke the dialog
[FBWebDialogs presentFeedDialogModallyWithSession:nil
parameters:params
handler:
^(FBWebDialogResult result, NSURL *resultURL, NSError *error) {
if (error) {
// Error launching the dialog or publishing a story.
NSLog(@"Error publishing story.");
} else {
if (result == FBWebDialogResultDialogNotCompleted) {
// User clicked the "x" icon
NSLog(@"User canceled story publishing.");
} else {
// Handle the publish feed callback
NSDictionary *urlParams = [self parseURLParams:[resultURL query]];
if (![urlParams valueForKey:@"post_id"]) {
// User clicked the Cancel button
NSLog(@"User canceled story publishing.");
} else {
// User clicked the Share button
NSString *msg = [NSString stringWithFormat:
@"Posted story, id: %@",
[urlParams valueForKey:@"post_id"]];
NSLog(@"%@", msg);
// Show the result in an alert
[[[UIAlertView alloc] initWithTitle:@"Result"
message:msg
delegate:nil
cancelButtonTitle:@"OK!"
otherButtonTitles:nil]
show];
}
}
}
}];
}
Avere lo stesso problema. –