2013-07-17 2 views
2

내 앱에서 X-FACEBOOK-PLATFORM과 같은 SASLAuthentication을 사용하는 대신 로그인 용 Facebook Jabber ID 메소드를 사용하고 있습니다. Jabber ID를 사용하는 Facebook 연결

this 참조에서, 나는 내가 를 사용하는 코드

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", "****"); // Error on this line 
    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(); 
} 
} 

의 다음 조각을 가지고 헤로인 3.3.0 API를, uses_INTERNET 권한, 거기에 설명 된 단계 (MemorizingTrustManager).

하지만 오류가 발생합니다. www.facebook.com/ nizam.cs 좋아

04-21 15:18:44.589: E/AndroidRuntime(2811): FATAL EXCEPTION: main 
04-21 15:18:44.589: E/AndroidRuntime(2811): java.lang.VerifyError: org.jivesoftware.smack.sasl.SASLMechanism 
04-21 15:18:44.589: E/AndroidRuntime(2811):  at java.lang.Class.getDeclaredConstructors(Native Method) 
04-21 15:18:44.589: E/AndroidRuntime(2811):  at java.lang.Class.getConstructor(Class.java:472) 
04-21 15:18:44.589: E/AndroidRuntime(2811):  at org.jivesoftware.smack.SASLAuthentication.authenticate(SASLAuthentication.java:314) 
04-21 15:18:44.589: E/AndroidRuntime(2811):  at org.jivesoftware.smack.XMPPConnection.login(XMPPConnection.java:221) 
04-21 15:18:44.589: E/AndroidRuntime(2811):  at org.jivesoftware.smack.Connection.login(Connection.java:366) 
04-21 15:18:44.589: E/AndroidRuntime(2811):  at com.activapps.fbchat.MainActivity.connectToFb(MainActivity.java:61) 

데 프로필; 나는 로그인을 위해 nizam.cs, [email protected] & [email protected]과 같은 사용자 아이디를 사용했으나 그 중 아무 것도 사용하지 않았다.

무엇이 누락 되었습니까?

페이스 북 SDK없이 에뮬레이터에서 테스트했습니다.

답변

1

문제가 해결되었습니다. :)

문제는 제가 사용했던 매물 보관함 때문이었습니다. smack3.3.0 대신에 asmack-android-6.jar업데이트 SMACK 라이브러리를 사용했습니다. xep0280 및 xep0184로 매김.

그게 연결 문제를 해결했습니다.

관련 문제