рд╕реНрдореИрдХ рдПрдкреАрдЖрдИ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рдЬрд╛рд╡рд╛ рдПрдХреНрд╕рдПрдордкреАрдкреА рдмреЙрдЯ

рдЫрд╡рд┐

рд╕рднреА рдХреЛ рд╢реБрдн рджрд┐рди!
рдЬреИрдмрд░ рдХреЗ рд▓рд┐рдП рдмреЙрдЯреНрд╕ рд▓рд┐рдЦрдиреЗ рдХрд╛ рд╡рд┐рд╖рдп рдХрд╛рдлреА рд╡реНрдпрд╛рдкрдХ рд╣реИред рд▓реЗрдХрд┐рди рд╣реЗрдм рдкрд░ рдореБрдЭреЗ рдХреЗрд╡рд▓ рдПрдХ рд▓реЗрдЦ рдорд┐рд▓рд╛ рдЬрд┐рд╕рдореЗрдВ рдмреЙрдЯ рдУрдкрдирдлрд╛рдпрд░ рд╕рд░реНрд╡рд░ рдХреЗ рд▓рд┐рдП рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рдерд╛ред рдФрд░ рдкрд╣рд▓реА рдЯрд┐рдкреНрдкрдгреА рдХрд╣рддреА рд╣реИ рдХрд┐ рдПрдХ рд╕рд╛рд░реНрд╡рднреМрдорд┐рдХ рдмреЙрдЯ рд▓рд┐рдЦрдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдкрдврд╝рдирд╛ рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ рдЬреЛ рд╕рд░реНрд╡рд░ рд╕реЗ рдмрдВрдзрд╛ рдирд╣реАрдВ рд╣реИред рдЗрд╕рд▓рд┐рдП рдореИрдВрдиреЗ рдЗрд╕ рд▓реЗрдЦ рдХреЛ рд▓рд┐рдЦрдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ред рдореИрдВ Google рдЯреЙрдХ рдХреЗ рд▓рд┐рдП рдмреЙрдЯ рдФрд░ рдЗрд╕ рдмреЙрдЯ рд╕реЗ рдЬреБрдбрд╝реА рдПрдХ рдмрд╛рд░реАрдХрд┐рдпреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рднреА рдмрд╛рдд рдХрд░реВрдВрдЧрд╛ред


рдЬреИрдмрд░ рдХреЗ рд▓рд┐рдП рдмреЙрдЯ

рдЬреИрд╕рд╛ рдХрд┐ рдЙрдкрд░реЛрдХреНрдд рд▓реЗрдЦ рдореЗрдВ, рдореЗрд░реЗ рдкрд╛рд╕ рдПрдХ OpenFire рд╕рд░реНрд╡рд░ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдореИрдВрдиреЗ рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ (рдЗрд╕рдХрд╛ рдорддрд▓рдм рдпрд╣ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдмреЙрдЯ рдХреЗрд╡рд▓ рдореЗрд░реЗ рд╕рд░реНрд╡рд░ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░реЗрдЧрд╛)ред рдмреЙрдЯ рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рд╕рд╛рд░реЗ рдЙрджрд╛рд╣рд░рдг рд╣реИрдВ, рдФрд░ рдпрд╣ рд╕рдВрднрд╛рд╡рдирд╛ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХреЛрдб рдмрд╣реБрдд рдирдпрд╛ рд╣реЛрдЧрд╛ред

public class Main { public static void main(String[] args) { try { String botNick = "nickname"; String botPassword = "password"; String botDomain = "jabber.org"; String botServer = "jabber.org"; int botPort = 5222; JabberBot bot = new JabberBot(botNick, botPassword, botDomain, botServer, botPort); Thread botThread = new Thread(bot); botThread.start(); } catch(Exception e) { System.out.printLn(e.getMessage()); } } } /** * ,      . *   Runnable,        *   ,   .<hr> * *   smack.jar  smackx.jar:<br> * org.jivesoftware.smack<hr> * * @author esin * */ public class JabberBot implements Runnable { private String nick; private String password; private String domain; private String server; private int port; private ConnectionConfiguration connConfig; private XMPPConnection connection; /** *     ,     - * @param nick -  * @param password -  * @param domain -  * @param server -  * @param port -  */ public JabberBot (String nick, String password, String domain, String server, int port) { this.nick = nick; this.password = password; this.domain = domain; this.server = server; this.port = port; } @Override public void run() { connConfig = new ConnectionConfiguration(server, port, domain); connection = new XMPPConnection(connConfig); try { int priority = 10; SASLAuthentication.supportSASLMechanism("PLAIN", 0); connection.connect(); connection.login(nick, password); Presence presence = new Presence(Presence.Type.available); presence.setStatus(" "); connection.sendPacket(presence); presence.setPriority(priority); PacketFilter filter = new AndFilter(new PacketTypeFilter(Message.class)); PacketListener myListener = new PacketListener() { public void processPacket(Packet packet) { if (packet instanceof Message) { Message message = (Message) packet; //    processMessage(message); } } }; connection.addPacketListener(myListener, filter); //      ,     while(connection.isConnected()) { Thread.sleep(60000); } } catch (Exception e) { System.out.printLn(e.getMessage()); } } /** *   <hr> * @param message   */ private void processMessage(Message message) { String messageBody = message.getBody(); String JID = message.getFrom(); //  .     :) //     - sendMessage(JID, messageBody); } /** *   <hr> * @param to JID ,    <br> * @param message  */ private void sendMessage(String to, String message) { if(!message.equals("")) { ChatManager chatmanager = connection.getChatManager(); Chat newChat = chatmanager.createChat(to, null); try { newChat.sendMessage(message); } catch (XMPPException e) { System.out.printLn(e.getMessage()); } } } } 


рд╡рд╣ рд╕рдм рд╣реИред рдореИрдВрдиреЗ рдПрдХ рдЕрд▓рдЧ рдзрд╛рдЧреЗ рдореЗрдВ рдмреЙрдЯ рдХрд╛ рдЪрдпрди рдХреНрдпреЛрдВ рдХрд┐рдпрд╛? рдореИрдВ рд╕рдордЭрддрд╛ рд╣реВрдВ рдХрд┐ рдмрд╣рдирд╛ рдЕрдЪреНрдЫрд╛ рдирд╣реАрдВ рд╣реИред рд▓реЗрдХрд┐рди рдмреЙрдЯ рдЗрдирд┐рд╢рд┐рдпрд▓рд╛рдЗрдЬрд╝реЗрд╢рди рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рдпрд╣ рдзрд╛рдЧрд╛ рд▓рдЧрднрдЧ рд╣рд░ рд╕рдордп рд╕реЛрдПрдЧрд╛ред рд╡рд╣ рдХрдиреЗрдХреНрд╢рди рдХреА рдЬрд╛рдВрдЪ рдХреЗ рд▓рд┐рдП рдХреЗрд╡рд▓ рдПрдХ рдорд┐рдирдЯ рдореЗрдВ рдПрдХ рдмрд╛рд░ рдЙрдареЗрдЧрд╛ред рдФрд░ рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдпрд╣ рдмрд╣реБрдд рд╣реА рд╢рд╛рдирджрд╛рд░ рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕реЗ рд╣рдЯрд╛рдирд╛ рдЕрд╕рдВрднрд╡ рдерд╛, рдХреНрдпреЛрдВрдХрд┐ рдЕрдиреНрдпрдерд╛ рдмреЙрдЯ рддреБрд░рдВрдд рд╢реБрд░реВ рдФрд░ рдмрдВрдж рд╣реЛ рдЬрд╛рдПрдЧрд╛ред рд╕реНрдореИрдХ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рджреНрд╡рд╛рд░рд╛ рдмрдирд╛рдП рдЧрдП рдкреНрд░рд╡рд╛рд╣ рдореЗрдВ рдЖрдиреЗ рд╡рд╛рд▓реЗ рд╕рдВрджреЗрд╢реЛрдВ рдФрд░ рдЖрдЙрдЯрдЧреЛрдЗрдВрдЧ рдХреЛ рднреЗрдЬрдиреЗ рдХреА рд╕рднреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рдкреВрд░рд╛ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

GoogleTalk рдХреЗ рд▓рд┐рдП рдмреЙрдЯ

рдЗрд╕ рдмреЙрдЯ рдХрд╛ рдХреЛрдб рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рд░реВрдк рд╕реЗ рдЕрд▓рдЧ рдирд╣реАрдВ рд╣реИред рдХреЗрд╡рд▓ рдХреБрдЫ рдЕрдВрддрд░ рд╣реИрдВ:

 public class Main { public static void main(String[] args) { try { String botNick = "nickname"; String botPassword = "password"; String botDomain = "gmail.com"; //        String botServer = "talk.google.com"; int botPort = 5222; GoogleTalkBot bot = new GoogleTalkBot(botNick, botPassword, botDomain, botServer, botPort); Thread botThread = new Thread(bot); botThread.start(); } catch(Exception e) { System.out.printLn(e.getMessage()); } } } /** * ,       . *   Runnable,        *   ,   .<hr> * *   smack.jar  smackx.jar:<br> * org.jivesoftware.smack<hr> * * @author esin * */ public class GoogleTalkBot implements Runnable { private String nick; private String password; private String domain; private String server; private int port; private ConnectionConfiguration connConfig; private XMPPConnection connection; /** *     ,      * @param nick -  * @param password -  * @param domain -  * @param server -  * @param port -  */ public GoogleTalkBot (String nick, String password, String domain, String server, int port) { this.nick = nick; this.password = password; this.domain = domain; this.server = server; this.port = port; } @Override public void run() { connConfig = new ConnectionConfiguration(server, port, domain); connection = new XMPPConnection(connConfig); try { int priority = 10; SASLAuthentication.supportSASLMechanism("PLAIN", 0); connection.connect(); connection.login(nick + "@" + domain, password); //         nickname@gmail.com Presence presence = new Presence(Presence.Type.available); presence.setStatus(" "); connection.sendPacket(presence); presence.setPriority(priority); PacketFilter filter = new AndFilter(new PacketTypeFilter(Message.class)); PacketListener myListener = new PacketListener() { public void processPacket(Packet packet) { if (packet instanceof Message) { Message message = (Message) packet; if(message.getType() == Type.chat) //    ,       { // Process message processMessage(message); } } } }; // Register the listener. connection.addPacketListener(myListener, filter); while(connection.isConnected()) { Thread.sleep(60000); } } catch (Exception e) { System.out.printLn(e.getMessage()); } } /** *   <hr> * @param message -   */ private void processMessage(Message message) { String messageBody = message.getBody(); String JID = message.getFrom(); sendMessage(JID, messageBody); } /** *   <hr> * @param to - JID ,    <br> * @param message -  */ private void sendMessage(String to, String message) { if(!message.equals("")) { ChatManager chatmanager = connection.getChatManager(); Chat newChat = chatmanager.createChat(to, null); try { newChat.sendMessage(message); } catch (XMPPException e) { System.out.printLn(e.getMessage()); } } } } 


рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рд╕рдм рдХреБрдЫ рд▓рдЧрднрдЧ рд╕рдорд╛рди рд╣реИред
рдЕрдм Google рд╡рд░реНрддрдорд╛рди рдХреЗ рд▓рд┐рдП рдмреЙрдЯ рдХреЗ рд╕рд╛рде рдЬреБрдбрд╝реА рд╣реБрдИ рдмрд╛рд░реАрдХрд┐рдпреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ (рдЧрд┐рд▓ рдореЗрдВ рдРрд╕реА рдХреЛрдИ рдмрд╛рд░реАрдХрд┐рдпреЛрдВ рдирд╣реАрдВ рд╣реИ)ред рдЬрдм рдореИрдВрдиреЗ рдмреЙрдЯреНрд╕ рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд┐рдпрд╛, рддреЛ рдореИрдВрдиреЗ рдЙрдирд╕реЗ рдлреЙрд░реНрдо рдореЗрдВ рдЗрдХреЛ рдЙрддреНрддрд░ рдХрд╛ рдкрд╛рда рднреЗрдЬрд╛
<рдХрд┐рд╕рдиреЗ рднреЗрдЬрд╛>: <рдХрд┐рд╕рдиреЗ рднреЗрдЬрд╛>
рдпрд╛рдиреА рдкрд╛рда рдиреЗ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдЙрд╕ рд╡реНрдпрдХреНрддрд┐ рдХреА рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛ (JID) рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд┐рдпрд╛ рдЬрд┐рд╕рдиреЗ рдЙрд╕реЗ рднреЗрдЬрд╛ рдерд╛ред рдЧрд┐рд▓ рдиреЗ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдХрд╛рдо рдХрд┐рдпрд╛, рдмрд┐рдирд╛ рдХрд┐рд╕реА рдЧрдбрд╝рдмрдбрд╝ рдХреЗред рдПрдХ рдЙрддреНрддрд░ рднреЗрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рдареАрдХ 10 рд╕рдВрджреЗрд╢реЛрдВ рдХреЗ рдмрд╛рдж Google рдЪрд╛рд▓реВред рдпрд╣ Google рдореЗрдВ рдПрдХ рд▓реЙрдЧрд┐рди рдХреЗ рд╕рд╛рде рдЬреБрдбрд╝рд╛ рд╣реБрдЖ рд╣реИ, рдореБрдЭреЗ рдмрд╣реБрдд рдкреАрдбрд╝рд╛ рдХреЗ рдмрд╛рдж рдкрддрд╛ рдЪрд▓рд╛ред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЗрд╕реЗ рдирд┐рдХрдиреЗрдо@gmail.com рдХреЗ рд░реВрдк рдореЗрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ, рдмрд╕ рдЙрдкрдирд╛рдо рдкрд░реНрдпрд╛рдкреНрдд рд╣реЛрдЧрд╛ред рдпрджрд┐ рдЖрдк рд▓реЙрдЧрд┐рди рдмрд┐рд▓реНрдХреБрд▓ рдирд╣реАрдВ рд▓рд┐рдЦрддреЗ рд╣реИрдВ рдпрд╛ рдХреЛрдИ рдЕрдиреНрдп рд▓рд┐рдЦрддреЗ рд╣реИрдВ, рддреЛ рд╕рдм рдХреБрдЫ рдареАрдХ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ

Source: https://habr.com/ru/post/In127535/


All Articles