Question

I found sample Facebook Chat Project for iOS here.

also i got the facebook chat doc here

Same way,

Did any one know facebook chat example app or way to implement fb chat in android?

Was it helpful?

Solution

There is one Android Open Source Project available : Beem Project and For connecting Facebook chat you can used following guidelines.

Steps for implementing Facebook chat API in Android:

  1. First we have to implement MemorizingTrustManager Library project in existing project.

    => For that you have to copy following three files in existing project

    • MemorizingTrustManager/src/de/duenndns/ssl/MTMDecision.java
    • MemorizingTrustManager/src/de/duenndns/ssl/MemorizingActivity.java
    • MemorizingTrustManager/src/de/duenndns/ssl/MemorizingTrustManager.java

    => And add following values in values/string.xml

    <resources>
        <string name="mtm_accept_cert">Accept Unknown Certificate?</string>
        <string name="mtm_decision_always">Always</string>
        <string name="mtm_decision_once">Once</string>
        <string name="mtm_decision_abort">Abort</string>
        <string name="mtm_notification">Certificate Verification</string>
    </resources>
    
  2. Second step, Instead of using SASLAuthentication such as X-FACEBOOK-PLATFORM, You can used following code to connect with Facebook and login using your Facebook Jabber ID (username@chat.facebook.com)

    public void connectToFb() throws XMPPException {
    
    ConnectionConfiguration config = new ConnectionConfiguration("chat.facebook.com", 5222);
    config.setSASLAuthenticationEnabled(true);
    config.setSecurityMode(SecurityMode.required);
    config.setRosterLoadedAtLogin(true);
    config.setTruststorePath("/system/etc/security/cacerts.bks");
    config.setTruststorePassword("changeit");
    config.setTruststoreType("bks");
    config.setSendPresence(false);
    try {
        SSLContext sc = SSLContext.getInstance("TLS");
        sc.init(null, MemorizingTrustManager.getInstanceList(this), new java.security.SecureRandom());
        config.setCustomSSLContext(sc);
    } catch (GeneralSecurityException e) {
        Log.w("TAG", "Unable to use MemorizingTrustManager", e);
    }
    XMPPConnection xmpp = new XMPPConnection(config);
    try {
        xmpp.connect();
        xmpp.login("facebookusername", "****"); // Here you have to used only facebookusername from facebookusername@chat.facebook.com
        Roster roster = xmpp.getRoster();
        Collection<RosterEntry> entries = roster.getEntries();
        System.out.println("Connected!");
        System.out.println("\n\n" + entries.size() + " buddy(ies):");
        // shows first time onliners---->
        String temp[] = new String[50];
        int i = 0;
        for (RosterEntry entry : entries) {
            String user = entry.getUser();
            Log.i("TAG", user);
        }
    } catch (XMPPException e) {
        xmpp.disconnect();
        e.printStackTrace();
    }
    }
    

At last, If you get all the Buddy list of your Facebook account in LogCat View, than you can implement simple Facebook chat using this tutorial.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top