2012-05-01 3 views
0

FB 용 간단한 채팅 클라이언트를 개발 중입니다. 나는 이제 "xmpp_login"및 "offline_access"범위로 내 채팅에 로그인 한 사용자의 access_token을 보유한 상태로 진행했습니다. chat.facebook.com에 성공적으로 연결할 수 있으며 api_key 및 access_token을 사용하여 로그인 할 수 있습니다. SASL 인증에는 문제가 없습니다.SASL X-FACEBOOK_PLATFORM을 사용하는 FB 채팅이 작동하지 않습니다.

이제 chat.sendMessage (String) 또는 chat.sendMessage (Message)를 사용하여 메시지를 보내려고하면 스낵 디버거에서 메시지가 전송 된 것으로 나타납니다. 하지만 내 페이스 북 웹 사이트에서 나는 그 사람에게 보낸 메시지를 보지 못했습니다.

hellokVfox0는

이 버려 디버거 전송 열로부터 출력된다. 보낸 사람 주소에 문제가 있습니까? 또는이 메시지 구조로? 내가이 문제를 디버깅하는 방법을 모르기 때문에이 시점에 갇혀있다.

모든 조언, 제안 또는 해결책을 환영합니다.

내가 사용하고있는 코드,

 ConnectionConfiguration config = new     ConnectionConfiguration("chat.facebook.com",5222);//ProxyInfo.forHttpProxy(soc.getHostName(),8080, null, null)); 
    config.setSASLAuthenticationEnabled(true); 
    XMPPConnection connection = new XMPPConnection(config); 
    XMPPConnection.DEBUG_ENABLED = true; 
    SASLAuthentication.registerSASLMechanism("X-FACEBOOK-PLATFORM", SASLXFBAuthentication.class); 
    SASLAuthentication.supportSASLMechanism("X-FACEBOOK-PLATFORM", 0); 
    connection.connect(); 
    String apiKey ="282973731790200"; 
    String accessToken ="My access token with xmpp_login and offline_access scope"; 
     connection.login(apiKey, accessToken); 
    Chat newchat = connection.getChatManager().createChat("[email protected]", new MessageListener() { 


     public void processMessage(Chat chat, Message message) { 
      // Print out any messages we get back to standard out. 
      System.out.println("Received message: " + message); 
     } 
    }); 
    Message msg = new Message(); 
    msg.addBody("English", text); 
    msg.addSubject("English", "Test"); 
    msg.setType(Type.chat); 
    // connection.sendPacket(msg); 
    newchat.sendMessage(msg); 

감사와 안부, KARTHIK 나는이 문제를 해결 한

+0

헤로인 디버거의 메시지가 있었다, <메시지 ID "=에서 ="[email protected] "에 ="7t1b1-4 "- [email protected] COM/Smack_a12852bb_4BEE613208288 "유형 ="채팅 "> 안녕하세요 당신이 메시지가 표시되지 않습니다 말할 때, 다른 사람이 메시지가 표시 않습니다 – Karthik

+0

kVfox0? – Igy

+0

아니요 .. 다른 사람도 메시지를 보지 않으며 예외도 없습니다. 메시지를 인코딩해야합니까 아니면 chat.sendMessage ("hello")와 같은 일반 문자열 일 수 있습니다. 내 코드를 여기에 게시해야합니까? – Karthik

답변

2

입니다.

메시지의 대상인 주소는 JID 형식이어야합니다. 이것을 얻으려면, 우리는 로커 클래스의 헤로인을 사용하고 페이스 북에서 모든 연결이나 친구들을 얻을 필요가 있습니다. 그렇게하면 의도 한 JID에 메시지를 보낼 수있었습니다.

감사합니다, KARTHIK

+0

더 설명하거나 샘플 코드를 제공해 주시겠습니까? – angelokh