Invita a los usuarios de Facebook desde la aplicación de iOS en Facebook: la invitación no se envía

Estoy tratando de invitar a los usuarios en Facebook a probar mi aplicación iOS (que aún no está en la tienda, no la terminó todavía).

Utilizo Facebook API para autenticar a un usuario y luego bash usar el siguiente código:

- (void)shareWithFriends:(id)sender { UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Invite Friends" message:@"If you enjoy using this app, would you mind taking a moment to invite a few friends that you think will also like it?" delegate:self cancelButtonTitle:@"No Thanks" otherButtonTitles:@"Tell Friends!", nil]; [alert show]; } - (void)alertView:(UIAlertView *)alertView didDismissWithButtonIndex:(NSInteger)buttonIndex { if (buttonIndex == 0) { // User has clicked on the No Thanks button, do not ask again NSLog(@"Chitty user says he doesn't wanna share"); } else if (buttonIndex == 1) { // User has clicked on the Tell Friends button [self performSelector:@selector(sendRequest) withObject:nil afterDelay:0.5]; } } - (void)sendRequest { // Display the requests dialog NSMutableDictionary* params = [NSMutableDictionary dictionaryWithObjectsAndKeys:nil]; [FBWebDialogs presentRequestsDialogModallyWithSession:nil message:[NSString stringWithFormat:@"Try this app, brah!"] title:nil parameters:params handler:^(FBWebDialogResult result, NSURL *resultURL, NSError *error) { if (error) { // Case A: Error launching the dialog or sending request. NSLog(@"Error sending request."); } else { if (result == FBWebDialogResultDialogNotCompleted) { // Case B: User clicked the "x" icon NSLog(@"User canceled request."); } else { NSLog(@"Request Sent."); } }}]; } 

Sin embargo, cuando selecciono usuarios a quienes quiero enviar las invitaciones y presiono Enviar. No pasa nada. Obtengo "Solicitud enviada". a través de NSLog pero mi amigo no lo está recibiendo.

¿Algunas ideas?

Noté que el post de notificación solo viene en la aplicación de Facebook tanto para Android / iOS, pero el usuario web no puede verlo, espero que no sea una implementación de Facebook. También para asegurarse de que su (s) invicción (s) se hayan enviado correctamente, debe analizar la consulta resultURL.

 NSDictionary *parameters = @{@"to":@""}; [FBWebDialogs presentRequestsDialogModallyWithSession:nil message:SL_FB_INVITE_DESCRIPTION title:SL_FB_INVITE_TITLE parameters:parameters handler:^(FBWebDialogResult result, NSURL *resultURL, NSError *error) { if(error) { NSLog(@"Some errorr: %@", [error description]); UIAlertView *alrt = [[UIAlertView alloc] initWithTitle:@"Invitiation Sending Failed" message:@"Unable to send inviation at this Moment, please make sure your are connected with internet" delegate:nil cancelButtonTitle:@"OK" otherButtonTitles: nil]; [alrt show]; [alrt release]; } else { if (![resultURL query]) { return; } NSDictionary *params = [self parseURLParams:[resultURL query]]; NSMutableArray *recipientIDs = [[[NSMutableArray alloc] init] autorelease]; for (NSString *paramKey in params) { if ([paramKey hasPrefix:@"to["]) { [recipientIDs addObject:[params objectForKey:paramKey]]; } } if ([params objectForKey:@"request"]) { NSLog(@"Request ID: %@", [params objectForKey:@"request"]); } if ([recipientIDs count] > 0) { //[self showMessage:@"Sent request successfully."]; //NSLog(@"Recipient ID(s): %@", recipientIDs); UIAlertView *alrt = [[UIAlertView alloc] initWithTitle:@"Success!" message:@"Invitation(s) sent successfuly!" delegate:nil cancelButtonTitle:@"OK" otherButtonTitles: nil]; [alrt show]; [alrt release]; } } } friendCache:nil]; - (NSDictionary *)parseURLParams:(NSString *)query { NSArray *pairs = [query componentsSeparatedByString:@"&"]; NSMutableDictionary *params = [[[NSMutableDictionary alloc] init] autorelease]; for (NSString *pair in pairs) { NSArray *kv = [pair componentsSeparatedByString:@"="]; [params setObject:[[kv objectAtIndex:1] stringByReplacingPercentEscapesUsingEncoding:NSUTF8StringEncoding] forKey:[[kv objectAtIndex:0] stringByReplacingPercentEscapesUsingEncoding:NSUTF8StringEncoding]]; } return params; } 

¿Cuándo estás poblando params?

Sé que la API de FB envía amablemente una acción completa si envía un nombre de usuario en blanco de Facebook como destinatario

Siempre depende de las plataforms en las que esté su aplicación. Por ejemplo: si tiene una aplicación que solo está disponible en dispositivos mobilees, los amigos invitados solo verán la request en sus teléfonos y no en facebook.com. Si también tiene una aplicación de canvas en facebook.com, también aparecerá en facebook.com.

Puede leer más sobre esto en la documentation sobre "Recibir experiencia" [1] de requestes enviadas por aplicaciones.

[1] https://developers.facebook.com/docs/games/requests/v2.0#receive

¿Cómo sabes que la request no ha llegado a otros usuarios? Debes saber que no recibirán ninguna notificación, pueden acceder a ella yendo a este enlace:

Debe tener una aplicación de Facebook en su aplicación como una plataforma con una página de canvas. Entonces, los usuarios recibirán una notificación.