7

我在这里找到 了适用于 iOS 的Facebook 聊天项目示例。

我也在这里获得了facebook 聊天文档

同样的方法,

有人知道 facebook 聊天示例应用程序或在 android 中实现 fb 聊天的方法吗?

4

1 回答 1

9

有一个可用的 Android 开源项目:Beem 项目和连接 Facebook 聊天,您可以使用以下指南。

在 Android 中实现 Facebook 聊天 API 的步骤:

  1. 首先,我们必须在现有项目中实现MemorizingTrustManager Library 项目。

    => 为此,您必须在现有项目中复制以下三个文件

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

    => 并在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. 第二步,您可以使用以下代码连接 Facebook 并使用您的Facebook Jabber ID (username@chat.facebook.com)登录,而不是使用X-FACEBOOK-PLATFORMSASLAuthentication

    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();
    }
    }
    

最后,如果您在 LogCat 视图中获取您 Facebook 帐户的所有好友列表,则可以使用本教程实现简单的 Facebook 聊天。

于 2012-06-28T04:35:51.043 回答