рдЬреИрд╕рд╛ рдХрд┐ iOS рдХреЗ рдЙрдкрдирд╛рдо рдЯреЗрд▓реАрдЧреНрд░рд╛рдо рдмреЙрдЯ рдиреЗ рд╕реНрд╡рд┐рдлреНрдЯ рдкрд░ рд▓рд┐рдЦрд╛ рд╣реИ

рдпрд╣ рдкреВрд░реА рддрд░рд╣ рд╕реЗ Swift 4.1 рдореЗрдВ рд▓рд┐рдЦреЗ рдЧрдП Telegrammer, Linux / MacOS рдХреЗ рд▓рд┐рдП Telegram Bot рдлреНрд░реЗрдорд╡рд░реНрдХ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╣реЛрдЧрд╛



рдПрдХреНрд╕рдкреЛрдЬ: рдЗрд╕ рддрд░рд╣ рдХреА рд╕реЛрдЪ рджрд┐рдорд╛рдЧ рдореЗрдВ рдХреИрд╕реЗ рдЖрдИ?


рдореЗрд░реА рдПрдХ рдкрд╛рд▓рддреВ-рдкрд░рд┐рдпреЛрдЬрдирд╛ (рдЯреЗрд▓реАрдЧреНрд░рд╛рдо рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рдПрдХ iOS рдПрдкреНрд▓рд┐рдХреЗрд╢рди, рд▓реЗрдХрд┐рди рдЕрдм рдпрд╣ рдЙрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдирд╣реАрдВ рд╣реИ) рдХреЛ рд╡рд┐рд╡рд░рдг, рдЯреИрдЧ рдФрд░ рдмрд╣реБрдд рдХреБрдЫ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рд╛рдордЧреНрд░реА рдкреНрд░рдмрдВрдзрдХ рдХреЗ рд▓рд┐рдП рдПрдХ рд╡реЗрдм рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдереАред рдЪреВрдВрдХрд┐ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд╡реИрдЪрд╛рд░рд┐рдХ рд░реВрдк рд╕реЗ рдЯреЗрд▓реАрдЧреНрд░рд╛рдо рдХреЗ рд╕рд╛рде рдЬреБрдбрд╝рд╛ рд╣реБрдЖ рдерд╛, рдпрд╣ рддреБрд░рдВрдд рдореЗрд░реЗ рджрд┐рдорд╛рдЧ рдореЗрдВ рд╕реАрдзреЗ рдореИрд╕реЗрдВрдЬрд░ рдкрд░ рд╕рд╛рдордЧреНрд░реА рднреЗрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдпрд╛ рдФрд░ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЙрдкрд░реЛрдХреНрдд рдХреНрд░рд┐рдпрд╛рдПрдВ рдХрд░рддрд╛ рд╣реИред


рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рдХрд┐ рдЖрдк рдЗрд╕ рддрд░рд╣ рдХреЗ рдбреЗрдЯрд╛ рдХреЛ рдмреЙрдЯреНрд╕ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рднреЗрдЬ рд╕рдХрддреЗ рд╣реИрдВ ( рдЯреЗрд▓реАрдЧреНрд░рд╛рдо рдореЗрдВ рдмреЙрдЯ рдХреА рд╡реНрдпрд╡рд╕реНрдерд╛ рдХреИрд╕реЗ рдХреА рдЬрд╛рддреА рд╣реИ )ред


рд╢реБрд░реВ: рдореИрдВ рдПрдХ рддреИрдпрд╛рд░ рд╕рдорд╛рдзрд╛рди рдХреА рддрд▓рд╛рд╢ рдореЗрдВ рдерд╛, рдореБрдЭреЗ рдПрдХ рдЙрдкрдпреБрдХреНрдд рдирд╣реАрдВ рдорд┐рд▓рд╛ред


рдФрд░ рдлрд┐рд░ рд╕рднреА рд╕рд┐рддрд╛рд░реЗ рдПрдХ рдкрдВрдХреНрддрд┐ рдореЗрдВ рдЦрдбрд╝реЗ рд╣реЛ рдЧрдП, рдЕрдм рдЖрдк рд╕рдордЭреЗрдВрдЧреЗ рдХрд┐ рдореЗрд░рд╛ рдХреНрдпрд╛ рдорддрд▓рдм рд╣реИ ...


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


рдпрджрд┐ рдЖрдк рд╕реНрд╡рд┐рдлреНрдЯ рдореЗрдВ рдмреЙрдЯ рд▓рд┐рдЦрддреЗ рд╣реИрдВ рддреЛ рдХреНрдпрд╛ рд╣реЛрдЧрд╛?


рд╣рд╛рд▓ рд╣реА рдореЗрдВ (рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рднрд╛рд╖рд╛рдУрдВ рдХреЗ рдорд╛рдирдХреЛрдВ рджреНрд╡рд╛рд░рд╛), рд╕рд░реНрд╡рд░ рд╕рд╛рдЗрдб рд╕реНрд╡рд┐рдлреНрдЯ рд╕рдореБрджрд╛рдп рд╕рдХреНрд░рд┐рдп рд░реВрдк рд╕реЗ рд╡рд┐рдХрд╕рд┐рдд рд╣реЛрдирд╛ рд╢реБрд░реВ рд╣реБрдЖ, рдФрд░ рдХрдИ рдЪреМрдЦрдЯреЗ рджрд┐рдЦрд╛рдИ рджрд┐рдП, рдЬреИрд╕реЗ рдХрд┐ рд╡рд╛рд╖реНрдк, рдкрд░рдлреЗрдХреНрдЯ, рдХрд┐рддреВрд░рд╛, рдЬреЛ рдкрд░реНрдпрд╛рдкреНрдд рдкреНрд░рд╕рд┐рджреНрдзрд┐ рд╣рд╛рд╕рд┐рд▓ рдХрд░рдиреЗ рдореЗрдВ рдХрд╛рдордпрд╛рдм рд░рд╣реЗред


рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, Apple рдиреЗ рднрдЯреНрдареА рдореЗрдВ рдЬрд▓рд╛рдК рд▓рдХрдбрд╝реА рдлреЗрдВрдХ рджреА, рдЬрд┐рд╕рд╕реЗ рдирд┐рдЪрд▓реЗ рд╕реНрддрд░ рдФрд░ рдЙрдЪреНрдЪ рдкреНрд░рджрд░реНрд╢рди рд╡рд╛рд▓реА SwiftBIO рдврд╛рдВрдЪреЗ рдХреЗ рд╕рд╛рде рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЗ рд▓рд┐рдП рдЬреАрд╡рди рдЖрд╕рд╛рди рд╣реЛ рдЧрдпрд╛


рдХреНрдпреЛрдВ рд╣реИ рд╕реНрд╡рд┐рдлреНрдЯрдирд┐рдпреЛ рдХреВрд▓?

SwiftNIO рдПрдХ рдЙрдЪреНрдЪ-рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рдИрд╡реЗрдВрдЯ-рдЪрд╛рд▓рд┐рдд рдиреЗрдЯрд╡рд░реНрдХ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдлреНрд░реЗрдорд╡рд░реНрдХ рд╣реИ, рдЬреЛ рдмрдирд╛рдП рд░рдЦрдиреЗ рдпреЛрдЧреНрдп рдЙрдЪреНрдЪ рдкреНрд░рджрд░реНрд╢рди рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рд╕рд░реНрд╡рд░ рдФрд░ рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЗ рддреАрд╡реНрд░ рд╡рд┐рдХрд╛рд╕ рдХреЗ рд▓рд┐рдП рд╣реИред


рдпрд╣ рдиреЗрдЯреНрдЯреА рдХреА рддрд░рд╣ рд╣реИ, рд▓реЗрдХрд┐рди рд╕реНрд╡рд┐рдлреНрдЯ рдХреЗ рд▓рд┐рдП рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рд╣реИред


рд╕реНрд╡рд┐рдлреНрдЯрдПрдирдЖрдИрдУ рдореВрд▓ рд░реВрдк рд╕реЗ рд╕реНрд╡рд┐рдлреНрдЯ рдореЗрдВ рдЙрдЪреНрдЪ-рдкреНрд░рджрд░реНрд╢рди рдиреЗрдЯрд╡рд░реНрдХрд┐рдВрдЧ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХреЗ рд▓рд┐рдП рдПрдХ рдирд┐рдореНрди-рд╕реНрддрд░реАрдп рдЙрдкрдХрд░рдг рд╣реИред рдпрд╣ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдЙрди рдЙрдкрдпреЛрдЧ-рдорд╛рдорд▓реЛрдВ рдХреЛ рд▓рдХреНрд╖рд┐рдд рдХрд░рддрд╛ рд╣реИ, рдЬрд╣рд╛рдВ рд╕рдВрдЧрд╛рдорд┐рддрд┐ рдХреЗ "рдереНрд░реЗрдб-рдкреНрд░рддрд┐-рдХрдиреЗрдХреНрд╢рди" рдореЙрдбрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЕрдХреНрд╖рдо рдпрд╛ рдЕрд╕реНрдерд┐рд░ рд╣реИред рд╕рд░реНрд╡рд░ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░рддреЗ рд╕рдордп рдпрд╣ рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рд╕реАрдорд╛ рд╣реИ рдЬреЛ рдмрдбрд╝реА рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рдЕрдкреЗрдХреНрд╖рд╛рдХреГрдд рдХрдо-рдЙрдкрдпреЛрдЧ рдХрдиреЗрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ, рдЬреИрд╕реЗ рдХрд┐ HTTP рд╕рд░реНрд╡рд░ред


рдЕрдкрдиреЗ рд▓рдХреНрд╖реНрдпреЛрдВ рдХреЛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП SwiftNIO рдмрдбрд╝реЗ рдкреИрдорд╛рдиреЗ рдкрд░ "рдЧреИрд░-рдЕрд╡рд░реЛрдзрдХ I / O" рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ: рдЗрд╕рд▓рд┐рдП рдирд╛рдо! рдЧреИрд░-рдЕрд╡рд░реБрджреНрдз I / O рдЕрдзрд┐рдХ рд╕рд╛рдорд╛рдиреНрдп рдЕрд╡рд░реБрджреНрдз I / O рдореЙрдбрд▓ рд╕реЗ рднрд┐рдиреНрди рд╣реЛрддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдбреЗрдЯрд╛ рдХреЗ рдиреЗрдЯрд╡рд░реНрдХ рдореЗрдВ рднреЗрдЬрдиреЗ рдпрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░рддреАрдХреНрд╖рд╛ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ: рдЗрд╕рдХреЗ рдмрдЬрд╛рдп, SwiftNIO рдХрд░реНрдиреЗрд▓ рдХреЛ рдпрд╣ рд╕реВрдЪрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╣рддрд╛ рд╣реИ рдХрд┐ рдХрдм / рдУ рд╕рдВрдЪрд╛рд▓рди рдХрд░ рд╕рдХрддрд╛ рд╣реИ рдЗрдВрддрдЬрд╛рд░ рдХрд┐рдП рдмрд┐рдирд╛ рдкреНрд░рджрд░реНрд╢рди рдХрд┐рдпрд╛ рдЬрд╛рдПред


SwiftNIO рдХрд╛ рдЙрджреНрджреЗрд╢реНрдп рдЙрдЪреНрдЪ-рд╕реНрддрд░реАрдп рд╕рдорд╛рдзрд╛рди рдкреНрд░рджрд╛рди рдХрд░рдирд╛ рдирд╣реАрдВ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╡реЗрдм рдлреНрд░реЗрдорд╡рд░реНрдХред рдЗрд╕рдХреЗ рдмрдЬрд╛рдп, SwiftNIO рдЗрди рдЙрдЪреНрдЪ-рд╕реНрддрд░реАрдп рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдирд┐рдореНрди-рд╕реНрддрд░реАрдп рдмрд┐рд▓реНрдбрд┐рдВрдЧ рдмреНрд▓реЙрдХ рдкреНрд░рджрд╛рди рдХрд░рдиреЗ рдкрд░ рдХреЗрдВрджреНрд░рд┐рдд рд╣реИред рдЬрдм рдХреЛрдИ рд╡реЗрдм рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдмрдирд╛рдиреЗ рдХреА рдмрд╛рдд рдЖрддреА рд╣реИ, рддреЛ рдЕрдзрд┐рдХрд╛рдВрд╢ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╕реАрдзреЗ SwiftNIO рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣реЗрдВрдЧреЗ: рдЗрд╕рдХреЗ рдмрдЬрд╛рдп, рд╡реЗ рд╕реНрд╡рд┐рдлреНрдЯ рдкрд╛рд░рд┐рд╕реНрдерд┐рддрд┐рдХреА рддрдВрддреНрд░ рдореЗрдВ рдЙрдкрд▓рдмреНрдз рдХрдИ рдорд╣рд╛рди рд╡реЗрдм рдлреНрд░реЗрдорд╡рд░реНрдХ рдореЗрдВ рд╕реЗ рдПрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣реЗрдВрдЧреЗред рд╣рд╛рд▓рд╛рдБрдХрд┐, рд╡реЗ рд╡реЗрдм рдлреНрд░реЗрдорд╡рд░реНрдХ рдЕрдкрдиреЗ рдиреЗрдЯрд╡рд░реНрдХрд┐рдВрдЧ рд╕рдорд░реНрдерди рдкреНрд░рджрд╛рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╡рд░ рдХреЗ рддрд╣рдд рд╕реНрд╡рд┐рдлреНрдЯрдирд┐рдпреЛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪреБрди рд╕рдХрддреЗ рд╣реИрдВред


рдореИрдВ рд╕рдорд╛рдкреНрдд рдЯреЗрд▓реАрдЧреНрд░рд╛рдо рдмреЙрдЯ рд╕реНрд╡рд┐рдлреНрдЯ рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рд╕реЗ рдХреНрдпрд╛ рд╡рд┐рдЪрд╛рд░ рдХрд░рддрд╛ рд╣реВрдВ:


  1. zmeyc / telegram-bot-рд╕реНрд╡рд┐рдлреНрдЯ - рдПрдХ рдХрд╛рдлреА рдЙрдиреНрдирдд рдкреБрд╕реНрддрдХрд╛рд▓рдп, рдкреВрд░реЗ рдЯреЗрд▓реАрдЧреНрд░рд╛рдо рдмреЙрдЯ рдПрдкреАрдЖрдИ рдХреЛ рд╕рд╛рдЗрдЯ рд╕реЗ рдкрд╛рд░реНрд╕ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рджреЛрдиреЛрдВ рддрд░реАрдХреЗ рдФрд░ рдореЙрдбрд▓, рдЙрдиреНрдирдд рдорд╛рд░реНрдЧ, рджреЛрдиреЛрдВ macOS рдФрд░ рд▓рд┐рдирдХреНрд╕ рдкрд░ рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВред
    рдЗрд╕ рддрдереНрдп рд╕реЗ рдЬреБрдбрд╝реЗ рдиреБрдХрд╕рд╛рди рдХрд┐ рдпрд╣ рдПрдХ рд▓рдВрдмреЗ рд╕рдордп рд╕реЗ рдкрд╣рд▓реЗ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рдерд╛, рдФрд░ рдЙрд╕ рд╕рдордп, рд╕рднреА Apple рдлреНрд░реЗрдорд╡рд░реНрдХ (рд╡рд┐рд╢реЗрд╖рдХрд░ рдлрд╛рдЙрдВрдбреЗрд╢рди) рдиреЗ рд▓рд┐рдирдХреНрд╕ рдкрд░ рдмрд╣реБрдд рдЕрд╕реНрдерд┐рд░ рдХрд╛рдо рдХрд┐рдпрд╛:


    • рдХрд░реНрд▓ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЕрдиреБрд░реЛрдз рднреЗрдЬрддрд╛ рд╣реИ
    • рдЕрдзреНрдпрдпрди рдХреЗ рд╕рдордп, рдкреБрд╕реНрддрдХрд╛рд▓рдп рдФрд░ рдЖрд╢реНрд░рд┐рдд рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рджреЛрдиреЛрдВ рдХреЛ 4 рдХреЛ рд╕реНрд╡рд┐рдлреНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреЛрд░реНрдЯ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛
    • Webhooks рджреНрд╡рд╛рд░рд╛ рд╕рдорд░реНрдерд┐рдд рдирд╣реАрдВ рд╣реИ
    • рдПрдХ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдЬрд┐рд╕реЗ рд▓рдВрдмреЗ рд╕рдордп рд╕реЗ рдЕрдкрдбреЗрдЯ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, рдЕрдкрдбреЗрдЯ рдХрд┐рдП рдЧрдП рдЯреЗрд▓реАрдЧреНрд░рд╛рдо рдмреЙрдЯ рдПрдкреАрдЖрдИ рдХреА рдХреБрдЫ рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдВ рд╕рдорд░реНрдерд┐рдд рдирд╣реАрдВ рд╣реИрдВред

  2. FabrizioBrancati / SwiftyBot - рдореБрдЭреЗ рдорд╛рдлрд╝ рдХрд░ рджреЗрдВ, рдореБрдЭреЗ рд╕рдордЭ рдирд╣реАрдВ рдЖ рд░рд╣рд╛ рд╣реИ рдХрд┐ рдЗрд╕ рдмреЙрдЯ рдореЗрдВ рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рд╕рд┐рддрд╛рд░реЗ рдХреНрдпреЛрдВ рд╣реИрдВ, рдкреБрд░рд╛рдирд╛ Vapor 2.4.0 рд╣реБрдб рдХреЗ рдиреАрдЪреЗ рд╣реИ, рдФрд░ рдЕрдХреЗрд▓рд╛ main.swift, рдЬреЛ рдмреЙрдЯ рдХреЗ рд╕рд╛рде рд╕рдмрд╕реЗ рд╕рд░рд▓ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рдХреЛрдИ рдореЙрдбрд▓, рдорджрджрдЧрд╛рд░, рдХрддрд╛рд░реЗрдВ рдирд╣реАрдВ, рдХреБрдЫ рднреА рдирд╣реАрдВред рдЕрд░реЗ рдирд╣реАрдВ! рдкреНрд░рддрд┐рдпреЛрдЧрд┐рдпреЛрдВ рдХреЗ рд╡рд┐рдкрд░реАрдд, рдпрд╣ WebHooks рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИред


  3. рд╢реЗрдирдХреНрдпреВ / рдЬрд╝реЗрдЧрдмреЛрдЯ - рдПрдХ рдмрд╣реБрдд рд╣реА рд╕рд░рд▓ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди, рдмреБрдирд┐рдпрд╛рджреА рддрд░реАрдХреЛрдВ, рдореЙрдбрд▓ рдФрд░ рдлрд┐рд░ рд╕реЗ рдХреЗрд╡рд▓ рд▓реЙрдиреНрдЧрдкреЙрд▓рд┐рдВрдЧ рдХреЛ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред



рдЗрд╕рд▓рд┐рдП, рдпрд╣ рддрдп рд╣реИ, рд╣рдо рдЕрдкрдиреА рд░реВрдкрд░реЗрдЦрд╛ рд▓рд┐рдЦреЗрдВрдЧреЗред рдИрдорд╛рдирджрд╛рд░реА рд╕реЗ, рдПрдВрдбреНрд░реА рдлрд┐рджрд╛рдп рдиреЗ рдореБрдЭреЗ рдЕрдкрдиреЗ рдмреЙрдЯ рд╕реЗ рдкреНрд░реЗрд░рд┐рдд рдХрд┐рдпрд╛, рд▓реЗрдХрд┐рди рдореИрдВрдиреЗ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ рдХрд┐ рдореИрдВ рдмреЗрд╣рддрд░ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВред


рдЪрд░рдореЛрддреНрдХрд░реНрд╖: рдмреИрдХреЗрдВрдб рдХреА рджреБрдирд┐рдпрд╛ рдореЗрдВ рдЖрдкрдХрд╛ рд╕реНрд╡рд╛рдЧрдд рд╣реИред SwiftNIO, рд╡рд┐рд╕реНрдлреЛрдЯ рдорд╕реНрддрд┐рд╖реНрдХ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред


рдореИрдВ рдорд╛рдирддрд╛ рд╣реВрдВ, рдЖрдИрдУрдПрд╕ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рдмрд╛рдж, рд╕рд░реНрд╡рд░ рд╕рд╛рдЗрдб рдХреЗ рд▓рд┐рдП рдПрдХ рдЖрд╡реЗрджрди рд▓рд┐рдЦрдирд╛ рдХрд╛рдлреА рдореБрд╢реНрдХрд┐рд▓ рд╣реИ, рдореБрдЭреЗ рдЕрд▓рдЧ рддрд░рд╣ рд╕реЗ рд╕реЛрдЪрдирд╛ рд╣реЛрдЧрд╛ред


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


рдореИрдВрдиреЗ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рд▓рд┐рдпрд╛:



рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ, рдХреБрдЫ рдХреАрдбрд╝реЗ рд╡рд╛рд╖реНрдк HTTPClient рдореЗрдВ рдкрд╛рдП рдЧрдП, рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рддрдп рдХрд┐рдП рдЧрдП, HTTPServer рдХреЛ nginx рдФрд░ рдЬреИрд╕реЗ рдЙрдкрдпреЛрдЧ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреЗ рдмрд┐рдирд╛, рдмреЙрдХреНрд╕ рд╕реЗ рдмрд╛рд╣рд░ https рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реБрдзрд╛рд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред


рдХреНрдпрд╛ рд╣реБрдЖ:


  • рдмреЙрдЯ рдПрдкреАрдЖрдИ рдХреЛ рдЗрд╕ рдХреНрд╖реЗрддреНрд░ рдХреЗ рдЕрдЬрдЧрд░-рдЯреЗрд▓реАрдЧреНрд░рд╛рдо-рдмреЙрдЯ рдореЗрдВ рдПрдХ рд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рдЦрд┐рд▓рд╛рдбрд╝реА рдкрд░ рдордЬрдмреВрдд рдирдЬрд░ рдХреЗ рд╕рд╛рде рдбрд┐рдЬрд╛рдЗрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛
  • Zmeyc / telegram-bot-рд╕реНрд╡рд┐рдлреНрдЯ рдХреА рддрд░рд╣, рд╕рднреА Telegram Bot API bot рдореЙрдбрд▓ рдФрд░ рддрд░реАрдХреЗ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЪрд▓рд╛рдХрд░ рдЙрддреНрдкрдиреНрди рдХрд┐рдП рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВред
  • рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд рд▓реЙрдиреНрдЧрдкреЛрд▓рд┐рдВрдЧ рдФрд░ рд╡реЗрдмрд╣реВрдХ рдореЛрдб
  • рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд рд╣реИрдВрдбрд▓рд░: рдХрдорд╛рдВрдбрд╣реИрдВрдбрд▓рд░, рдХреЙрд▓рдмреИрдХрдмреИрдХрд╣реИрдВрдбрд▓рд░, рд░реЗрдЧреЗрдХреНрд╕рд╣реИрдВрдбрд▓рд░, рд╕рдВрджреЗрд╢рд╣реИрдВрдбрд▓рд░
  • рдЕрдкрдбреЗрдЯ рдХреЗ рд▓рд┐рдП рдХрдИ рдлрд╝рд┐рд▓реНрдЯрд░
  • рджреЛ рд╕рд░рд▓ рдмреЙрдЯ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдорд╛рдирдХ рдЗрдХреЛрдмреЛрдЯ рдФрд░ рд╣реИрд▓реЛрдмреЙрдЯ

рдЗрдВрдЯрд░рдЪреЗрдВрдЬ: рд╣рдо рдПрдХ рдмреЙрдЯ рд▓рд┐рдЦрддреЗ рд╣реИрдВ рдЬреЛ рдЖрдо рддреМрд░ рдкрд░ рдЙрдкрдпреЛрдЧреА рд╣реИ, рдЗрд╕реЗ рд╡рд░реНрддрдиреА рдХреА рдЬрд╛рдВрдЪ рдХрд░рдиреЗ рджреЗрдВред


рдмреЙрдЯ: @yandex_spell_checker_bot
рд╕реНрд░реЛрдд рдХреЛрдб: https://github.com/givip/YandexSpellCheckerBot


main.swift рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИ:


import Foundation import Telegrammer ///   enviroment variable ( , ) guard let token = Enviroment.get("SPELL_CHECKER_BOT_TOKEN") else { exit(1) } do { ///   let bot = try Bot(token: token) ///    let dispatcher = Dispatcher(bot: bot) ///    let controller = SpellCheckerController(bot: bot) ///    /start,   let commandHandler = CommandHandler(commands: ["/start"], callback: controller.start) dispatcher.add(handler: commandHandler) ///    ,        let textHandler = MessageHandler(filters: .private, callback: controller.spellCheck) dispatcher.add(handler: textHandler) ///   ,    . let inlineHandler = CallbackQueryHandler(pattern: "\\w+", callback: controller.inline) dispatcher.add(handler: inlineHandler) ///     Longpolling _ = try Updater(bot: bot, dispatcher: dispatcher).startLongpolling().wait() } catch { print(error.localizedDescription) } 

рдЙрдкрд╕рдВрд╣рд╛рд░: рдЖрдИрдУрдПрд╕ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдФрд░ рдЕрдзрд┐рдХ, рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ!


рд░реВрдкрд░реЗрдЦрд╛ рдмреАрдЯрд╛ рдореЗрдВ рд╣реИ, рдФрд░ рдХреЛрдИ рднреА рдЕрдкрдиреА рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддрд╛ рд╣реИред


рдПрдХ рдорд╣реАрдиреЗ рдХреЗ рдкрд░реАрдХреНрд╖рдг рдФрд░ рд╕реБрдзрд╛рд░реЛрдВ рдХреЗ рдмрд╛рдж, рдХреБрдЫ рдХрдорд┐рдпрд╛рдВ рдереАрдВ, рд╡рд┐рд╢рд▓рд┐рд╕реНрдЯ рдФрд░ рдмрд╣реБрдд рд╕рд╛рд░реЗ рдПрдиреНрд╣рд╛рдВрд╕рдореЗрдВрдЯ рдореБрджреНрджреЗ рдереЗ, рд▓реЗрдХрд┐рди рдлрд┐рд░ рднреА, "рд╕реНрдкреЗрд▓ рдЪреЗрдХрд┐рдВрдЧ" рд▓рдВрдмреЗ рд╕рдордп рд╕реЗ рдЙрдмрдВрдЯреВ рдкрд░ рдШреВрдо рд░рд╣рд╛ рд╣реИред


рдореИрдВ рдХрд┐рд╕реА рднреА рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреЗ рд▓рд┐рдП рдЖрднрд╛рд░реА рд░рд╣реВрдВрдЧрд╛, рдФрд░ рдкреНрд░рд╢рдВрд╕рдХ рдкрд░ рдлреЗрдВрдХреВрдВрдЧрд╛ред

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


All Articles