SDK de Facebook: saber si se compartió

Estoy compartiendo un enlace desde mi aplicación con el código de HelloFacebookSample, pero no puedo determinar cómo saber si realmente se realizó el intercambio. Yo uso esto para compartir:

FBAppCall *appCall = [FBDialogs presentShareDialogWithLink:urlToShare name:@"Hello Facebook" caption:nil description:@"The 'Hello Facebook' sample application showcases simple Facebook integration." picture:nil clientState:nil handler:^(FBAppCall *call, NSDictionary *results, NSError *error) { if (error) { NSLog(@"Error: %@", error.description); } else { NSLog(@"Success!"); } NSLog(@"Results: %@",results); }]; 

y eso funciona bien. El problema es acceder al dictionary de resultados. Me di count de que tengo que agregar esto al delegado de la aplicación:

 - (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation { // attempt to extract a token from the url return [FBAppCall handleOpenURL:url sourceApplication:sourceApplication fallbackHandler:^(FBAppCall *call) { NSLog(@"In fallback handler"); }]; } 

De lo contrario, el manejador no se ejecuta en absoluto. Lo extraño ahora es que en la aplicación de ejemplo el dictionary de resultados tiene dos campos,

 completionGesture = cancel; didComplete = 1; 

pero cuando uso exactamente el mismo código en mi propia aplicación, en el mismo teléfono, el dictionary solo contiene

 didComplete = 1; 

¿Por qué es eso, y hay alguna otra forma de averiguar si el usuario compartió o canceló?

Vea esta sección aquí sobre lo que puede esperar en el dictionary de resultados, y por qué solo algunos valores están disponibles:

https://developers.facebook.com/ios/share-dialog/#handling-responses