Note that there are some explanatory texts on larger screens.

plurals
  1. POHow to list only online users on facebook with xmpp framework
    primarykey
    data
    text
    <p>I have integrated xmpp in my app and able to list all the users in a table view, but I only want to display the online users and then want to implement the feature to send and recieve messages to my online friends... </p> <p>Please suggest me some helpful code... </p> <p>Here is my code, executed after facebook login.</p> <pre><code> - (void)fbDidLogin { NSLog(@"logged in....................."); [appDelegate.facebook requestWithGraphPath:@"me" andDelegate:self]; DDLogVerbose(@"%s accessToken: %@ expirationDate: %@",__PRETTY_FUNCTION__,appDelegate.facebook.accessToken,appDelegate.facebook.expirationDate); self.accessToken = appDelegate.facebook.accessToken; if (xmppStreamFB) { [xmppStreamFB release]; xmppStreamFB = nil; } xmppStreamFB = [[XMPPStreamFacebook alloc] init]; xmpReconnect = [[XMPPReconnect alloc] initWithStream:xmppStreamFB]; if (xmppRosterStorage) { [xmppRosterStorage release]; xmppRosterStorage = nil; } xmppRosterStorage = [[XMPPRosterCoreDataStorage alloc] init]; if (xmppRoster) { [xmppRoster release]; xmppRoster = nil; } xmppRoster = [[XMPPRoster alloc] initWithStream:xmppStreamFB rosterStorage:xmppRosterStorage]; [xmppStreamFB addDelegate:self]; [xmppRoster addDelegate:self]; [xmppRoster setAutoRoster:YES]; xmppStreamFB.myJID = [XMPPJID jidWithString:[NSString stringWithFormat:@"%@@chat.facebook.com", uid]]; // You may need to alter these settings depending on the server you're connecting to allowSelfSignedCertificates = NO; allowSSLHostNameMismatch = YES; // Uncomment me when the proper information has been entered above. NSError *error = nil; if (![xmppStreamFB connect:&amp;error]) NSLog(@"Error connecting: %@", error); if(!tableView) { tableView = [[UITableView alloc]initWithFrame:CGRectMake(0,0, 480, 320) style:UITableViewStylePlain]; } [tableView setFrame:CGRectMake(0,0, 480, 320)]; [tableView setTag:2]; [tableView setDelegate:self]; [tableView setDataSource:self]; [tableView setHidden:NO]; [tableView setBackgroundColor:[UIColor clearColor]]; [tableView setSeparatorStyle:UITableViewCellSeparatorStyleSingleLine]; [tableView setAlpha:1.0]; [self.view addSubview:tableView]; [self.tableView reloadData]; [self showTopBar]; } </code></pre> <p>I don't know the actual flow of the xmpp framework for showing users online and to implement chat feature... </p> <pre><code>i have the following delegate methods as well.. - (void)xmppStreamDidSecure:(XMPPStreamFacebook *)sender { NSLog(@"---------- xmppStreamDidSecure: ----------"); } - (void)xmppStreamDidConnect:(XMPPStreamFacebook *)sender { NSLog(@"---------- xmppStreamDidConnect: ----------"); isOpen = YES; NSError *error = nil; if (![self.xmppStreamFB authenticateWithAppId:_APP_ID accessToken:self.accessToken error:&amp;error]) { NSLog(@"Error authenticating: %@", error); } else { NSLog(@"NO Error authenticating:"); /* ChatViewController *cvc = [[ChatViewController alloc] init]; [self.view addSubview:cvc.view];*/ } } - (void)xmppStreamDidAuthenticate:(XMPPStream *)sender { NSLog(@"---------- xmppStreamDidAuthenticate: ----------"); [self goOnline]; } - (void)xmppStream:(XMPPStream *)sender didNotAuthenticate:(NSXMLElement *)error { NSLog(@"---------- xmppStream:didNotAuthenticate: ----------"); } - (BOOL)xmppStream:(XMPPStream *)sender didReceiveIQ:(XMPPIQ *)iq { NSLog(@"---------- xmppStream:didReceiveIQ: ----------"); /* ChatViewController *cvc = [[ChatViewController alloc] init]; [self.view addSubview:cvc.view];*/ return NO; } - (void)xmppStream:(XMPPStream *)sender didReceiveMessage:(XMPPMessage *)message { NSLog(@"---------- xmppStream:didReceiveMessage: ----------"); } - (void)xmppStream:(XMPPStream *)sender didReceivePresence:(XMPPPresence *)presence { NSLog(@"---------- xmppStream:didReceivePresence: ----------"); } - (void)xmppStream:(XMPPStream *)sender didReceiveError:(id)error { NSLog(@"---------- xmppStream:didReceiveError: ----------"); } - (void)xmppStreamDidDisconnect:(XMPPStream *)sender { NSLog(@"---------- xmppStreamDidDisconnect: ----------"); if (!isOpen) { NSLog(@"Unable to connect to server. Check xmppStream.hostName"); } } </code></pre> <p>And the two methods for online and offline user presence, but don't know how to modify them for my task:</p> <pre><code> - (void)goOnline { NSXMLElement *presence = [NSXMLElement elementWithName:@"presence"]; [[self xmppStream] sendElement:presence]; } - (void)goOffline { NSXMLElement *presence = [NSXMLElement elementWithName:@"presence"]; [presence addAttributeWithName:@"type" stringValue:@"unavailable"]; [[self xmppStream] sendElement:presence]; } </code></pre>
    singulars
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload