Я разрабатываю простой чат-клиент для FB. Я дошел до состояния, когда теперь у меня есть access_token пользователя, который вошел в мой чат с областью действия «xmpp_login» и «offline_access». Я могу успешно подключиться к chat.facebook.com, а также войти в систему, используя api_key и access_token. Проблем с SASL-аутентификацией нет.
Теперь, когда я пытаюсь отправить сообщение, используя chat.sendMessage(String) или chat.sendMessage(Message), отладчик smack показывает, что сообщение было отправлено. Но на моем сайте в Facebook я не вижу этого сообщения, отправленного этому человеку.
хеллоквфокс0
Это вывод из столбца "Отправленные" отладчика Smack. Что-то не так с адресом отправителя? или с такой структурой сообщения? Я застрял на этом этапе, потому что не знаю, как решить эту проблему.
Любые советы, предложения или решения приветствуются.
Это фрагмент кода, который я использую,
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);
Спасибо и С уважением, Картик