I sent a request to facebook. It works fine, but I receive a request (notification) only in the iPhone facebook App, and not in the Facebook web application. I want both the Facebook native app and the web app to be notified. How can i do this?
#pragma Sending Facebook app request - (NSDictionary*)parseURLParams:(NSString *)query { NSArray *pairs = [query componentsSeparatedByString:@"&"]; NSMutableDictionary *params = [[NSMutableDictionary alloc] init]; for (NSString *pair in pairs) { NSArray *kv = [pair componentsSeparatedByString:@"="]; NSString *val = [[kv objectAtIndex:1] stringByReplacingPercentEscapesUsingEncoding:NSUTF8StringEncoding]; [params setObject:val forKey:[kv objectAtIndex:0]]; } return params; } - (void)sendRequest { NSError *error; NSData *jsonData = [NSJSONSerialization dataWithJSONObject:@{ @"social_karma": @"5", @"badge_of_awesomeness": @"1"} options:0 error:&error]; if (!jsonData) { NSLog(@"JSON error: %@", error); return; } NSString *giftStr = [[NSString alloc] initWithData:jsonData encoding:NSUTF8StringEncoding]; NSMutableDictionary* params = [NSMutableDictionary dictionaryWithObjectsAndKeys: giftStr, @"data", nil]; // Display the requests dialog [FBWebDialogs presentRequestsDialogModallyWithSession:nil message:@"Learn how to make your iOS apps social." title:nil parameters:params handler:^(FBWebDialogResult result, NSURL *resultURL, NSError *error) { if (error) { // Error launching the dialog or sending the request. NSLog(@"Error sending request."); } else { if (result == FBWebDialogResultDialogNotCompleted) { // User clicked the "x" icon NSLog(@"User canceled request."); } else { // Handle the send request callback NSDictionary *urlParams = [self parseURLParams:[resultURL query]]; if (![urlParams valueForKey:@"request"]) { // User clicked the Cancel button NSLog(@"User canceled request."); } else { // User clicked the Send button NSString *requestID = [urlParams valueForKey:@"request"]; NSLog(@"Request ID: %@", requestID); } } } }]; } - (void)sendRequestClicked { // Filter and only show friends using iOS [self requestFriendsUsingDevice:@"iOS"]; } - (void)sendRequest:(NSArray *) targeted { NSError *error; NSData *jsonData = [NSJSONSerialization dataWithJSONObject:@{ @"social_karma": @"5", @"badge_of_awesomeness": @"1"} options:0 error:&error]; if (!jsonData) { NSLog(@"JSON error: %@", error); return; } NSString *giftStr = [[NSString alloc] initWithData:jsonData encoding:NSUTF8StringEncoding]; NSMutableDictionary* params = [NSMutableDictionary dictionaryWithObjectsAndKeys:giftStr, @"data", nil]; // Filter and only show targeted friends if (targeted != nil && [targeted count] > 0) { NSString *selectIDsStr = [targeted componentsJoinedByString:@","]; [params setObject:selectIDsStr forKey:@"suggestions"]; } // Display the requests dialog [FBWebDialogs presentRequestsDialogModallyWithSession:nil message:@"Learn how to make your iOS apps social." title:nil parameters:params handler:^(FBWebDialogResult result, NSURL *resultURL, NSError *error) { if (error) { // Error launching the dialog or sending request. NSLog(@"Error sending request."); } else { if (result == FBWebDialogResultDialogNotCompleted) { // User clicked the "x" icon NSLog(@"User canceled request."); } else { // Handle the send request callback NSDictionary *urlParams = [self parseURLParams:[resultURL query]]; if (![urlParams valueForKey:@"request"]) { // User clicked the Cancel button NSLog(@"User canceled request."); } else { // User clicked the Send button NSString *requestID = [urlParams valueForKey:@"request"]; NSLog(@"Request ID: %@", requestID); } } } }]; } - (void) requestFriendsUsingDevice:(NSString *)device { NSMutableArray *deviceFilteredFriends = [[NSMutableArray alloc] init]; [FBRequestConnection startWithGraphPath:@"me/friends" parameters:[NSDictionary dictionaryWithObjectsAndKeys: @"id,devices", @"fields", nil] HTTPMethod:nil completionHandler:^(FBRequestConnection *connection, id result, NSError *error) { if (!error) { // Get the result NSArray *resultData = [result objectForKey:@"data"]; // Check we have data if ([resultData count] > 0) { // Loop through the friends returned for (NSDictionary *friendObject in resultData) { // Check if devices info available if ([friendObject objectForKey:@"devices"]) { NSArray *deviceData = [friendObject objectForKey:@"devices"]; // Loop through list of devices for (NSDictionary *deviceObject in deviceData) { // Check if there is a device match if ([device isEqualToString: [deviceObject objectForKey:@"os"]]) { // If there is a match, add it to the list [deviceFilteredFriends addObject: [friendObject objectForKey:@"id"]]; break; } } } } } } // Send request [self sendRequest:deviceFilteredFriends]; }]; }
source share