通过XMPP连接到Facebook聊天:使用机制DIGEST-MD5进行SASL身份验证失败

时间:2013-07-05 22:12:24

标签: android xmpp asmack facebook-chat

我一直在尝试使用aSmack jar通过XMPP协议连接到Facebook聊天。但我收到一条错误消息:Error: SASL authentication failed using mechanism DIGEST-MD5

以下是例外:

07-05 15:00:48.833: E/Smack(17661): Error: SASL authentication failed using mechanism DIGEST-MD5
07-05 15:00:48.833: W/System.err(17661): SASL authentication failed using mechanism DIGEST-MD5: 
07-05 15:00:48.843: W/System.err(17661):    at org.jivesoftware.smack.SASLAuthentication.authenticate(SASLAuthentication.java:341)
07-05 15:00:48.843: W/System.err(17661):    at org.jivesoftware.smack.XMPPConnection.login(XMPPConnection.java:204)
07-05 15:00:48.843: W/System.err(17661):    at org.jivesoftware.smack.Connection.login(Connection.java:357)
07-05 15:00:48.843: W/System.err(17661):    at com.example.xmpp.MessageTask.doInBackground(MessageTask.java:52)
07-05 15:00:48.843: W/System.err(17661):    at com.example.xmpp.MessageTask.doInBackground(MessageTask.java:1)
07-05 15:00:48.843: W/System.err(17661):    at android.os.AsyncTask$2.call(AsyncTask.java:287)
07-05 15:00:48.843: W/System.err(17661):    at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:305)
07-05 15:00:48.843: W/System.err(17661):    at java.util.concurrent.FutureTask.run(FutureTask.java:137)
07-05 15:00:48.843: W/System.err(17661):    at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:230)
07-05 15:00:48.843: W/System.err(17661):    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1076)
07-05 15:00:48.853: W/System.err(17661):    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:569)
07-05 15:00:48.853: W/System.err(17661):    at java.lang.Thread.run(Thread.java:856)

我尝试登录的用户名和密码是我用来正常登录Facebook的凭据。

以下是代码:

ConnectionConfiguration config = new ConnectionConfiguration("chat.facebook.com", 5222);
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.ICE_CREAM_SANDWICH) {
            config.setTruststoreType("AndroidCAStore");
            config.setTruststorePassword(null);
            config.setTruststorePath(null);
        } else {
            config.setTruststoreType("BKS");
            String path = System.getProperty("javax.net.ssl.trustStore");
            if (path == null)
                path = System.getProperty("java.home") + File.separator + "etc"
                    + File.separator + "security" + File.separator
                    + "cacerts.bks";
            config.setTruststorePath(path);
        }

        XMPPConnection connection =  new XMPPConnection(config);
        try {
            connection.connect();
            connection.login(user, pwd);

        } catch (Exception e) {
            // TODO Auto-generated catch block
            Log.e("Smack", "Error: " + e.getMessage());
            e.printStackTrace();
        }

0 个答案:

没有答案