2012-06-08 33 views

Trả lời

9

Có một dự án nguồn mở Android có sẵn: Beem Project và để kết nối trò chuyện trên Facebook, bạn có thể sử dụng các nguyên tắc sau.

Các bước để thực hiện Facebook chat API trong Android:

  1. Đầu tiên chúng ta phải thực hiện MemorizingTrustManager dự án Thư viện trong dự án hiện có.

    => Cho rằng bạn phải sao chép sau ba tác phẩm trong dự án hiện có

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

    => Và thêm giá trị sau trong giá trị/string.xm l

    <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. bước thứ hai, Thay vì sử dụng SASLAuthentication như X-FACEBOOK-PLATFORM, Bạn có thể sử dụng đoạn mã sau để kết nối với Facebook và đăng nhập bằng Facebook Jabber ID của bạn (username @ trò chuyện .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 [email protected] 
        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(); 
    } 
    } 
    

cuối cùng, nếu bạn nhận được tất cả các danh sách Buddy của bạn Tài khoản Facebook trong LogCat View, hơn là bạn có thể thực hiện trò chuyện Facebook đơn giản bằng cách sử dụng this tutorial.

+2

+1 cảm ơn rất nhiều .. tôi sẽ làm việc này .... –

+1

tôi đã chấp nhận câu trả lời nhưng cho đến khi bất kỳ câu trả lời nào khác là có câu trả lời mới được hoan nghênh ;-) –

+0

Tôi đã thử phương pháp này nhưng nó chỉ trả về một danh sách số ngẫu nhiên có vẻ như liên quan đến bạn bè của tôi? bất kỳ ý tưởng? – Peter

Các vấn đề liên quan