{"id":309626,"date":"2020-09-08T09:00:58","date_gmt":"2020-09-08T09:00:58","guid":{"rendered":"http:\/\/savepearlharbor.com\/?p=309626"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-29T21:00:00","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=309626","title":{"rendered":"\u041f\u0438\u0448\u0435\u043c telegram \u0431\u043e\u0442\u0430 \u043d\u0430 \u044f\u0437\u044b\u043a\u0435 R (\u0447\u0430\u0441\u0442\u044c 3): \u041a\u0430\u043a \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0431\u043e\u0442\u0443 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0443 \u043a\u043b\u0430\u0432\u0438\u0430\u0442\u0443\u0440\u044b"},"content":{"rendered":"\n<div class=\"post__text post__text-html post__text_v1\" id=\"post-content-body\" data-io-article-url=\"https:\/\/habr.com\/ru\/post\/516908\/\">\n<p>\u042d\u0442\u043e \u0442\u0440\u0435\u0442\u044c\u044f \u0441\u0442\u0430\u0442\u044c\u044f \u0438\u0437 \u0441\u0435\u0440\u0438\u0438 &quot;\u041f\u0438\u0448\u0435\u043c telegram \u0431\u043e\u0442\u0430 \u043d\u0430 \u044f\u0437\u044b\u043a\u0435 R&quot;. \u0412 \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0438\u0445 \u043f\u0443\u0431\u043b\u0438\u043a\u0430\u0446\u0438\u044f\u0445 \u043c\u044b \u043d\u0430\u0443\u0447\u0438\u043b\u0438\u0441\u044c \u0441\u043e\u0437\u0434\u0430\u0432\u0430\u0442\u044c \u0442\u0435\u043b\u0435\u0433\u0440\u0430\u043c \u0431\u043e\u0442\u0430, \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u0442\u044c \u0447\u0435\u0440\u0435\u0437 \u043d\u0435\u0433\u043e \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f, \u0434\u043e\u0431\u0430\u0432\u0438\u043b\u0438 \u0431\u043e\u0442\u0443 \u043a\u043e\u043c\u0430\u043d\u0434\u044b \u0438 \u0444\u0438\u043b\u044c\u0442\u0440\u044b \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0439. \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u043f\u0435\u0440\u0435\u0434 \u0442\u0435\u043c \u043a\u0430\u043a \u043f\u0440\u0438\u0441\u0442\u0443\u043f\u0438\u0442\u044c \u043a \u0447\u0442\u0435\u043d\u0438\u044e \u0434\u0430\u043d\u043d\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0438 \u044f \u043a\u0440\u0430\u0439\u043d\u0435 \u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0443\u044e \u043e\u0437\u043d\u0430\u043a\u043e\u043c\u0438\u0442\u044c\u0441\u044f \u0441 <a href=\"#vse-stati-iz-serii-pishem-telegram-bota-na-yazyke-r\">\u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0438\u043c\u0438<\/a>, \u0442.\u043a. \u0442\u0443\u0442 \u044f \u0443\u0436\u0435 \u043d\u0435 \u0431\u0443\u0434\u0443 \u043e\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0442\u044c \u043d\u0430 \u043e\u043f\u0438\u0441\u0430\u043d\u043d\u044b\u0445 \u0440\u0430\u043d\u0435\u0435 \u043e\u0441\u043d\u043e\u0432\u0430\u0445 \u0431\u043e\u0442\u043e\u0441\u0442\u0440\u043e\u0435\u043d\u0438\u044f.<\/p>\n<p>  <\/p>\n<p>\u0412 \u044d\u0442\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435 \u043c\u044b \u043f\u043e\u0432\u044b\u0441\u0438\u043c \u044e\u0437\u0430\u0431\u0438\u043b\u0438\u0442\u0438 \u043d\u0430\u0448\u0435\u0433\u043e \u0431\u043e\u0442\u0430 \u0437\u0430 \u0441\u0447\u0451\u0442 \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u043a\u043b\u0430\u0432\u0438\u0430\u0442\u0443\u0440\u044b, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0441\u0434\u0435\u043b\u0430\u0435\u0442 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441 \u0431\u043e\u0442\u0430 \u0438\u043d\u0442\u0443\u0438\u0442\u0438\u0432\u043d\u043e \u043f\u043e\u043d\u044f\u0442\u043d\u044b\u043c, \u0438 \u043f\u0440\u043e\u0441\u0442\u044b\u043c \u0432 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0438.<\/p>\n<p>  <\/p>\n<div style=\"text-align:center;\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/xv\/xz\/t0\/xvxzt04r_e6svczshzxmppuilz8.png\" width=\"80%\"><\/div>\n<p><a name=\"habracut\"><\/a>  <\/p>\n<h1 id=\"vse-stati-iz-serii-pishem-telegram-bota-na-yazyke-r\">\u0412\u0441\u0435 \u0441\u0442\u0430\u0442\u044c\u0438 \u0438\u0437 \u0441\u0435\u0440\u0438\u0438 &quot;\u041f\u0438\u0448\u0435\u043c telegram \u0431\u043e\u0442\u0430 \u043d\u0430 \u044f\u0437\u044b\u043a\u0435 R&quot;<\/h1>\n<p>  <\/p>\n<ol>\n<li><a href=\"https:\/\/habr.com\/ru\/post\/511222\/\">\u0421\u043e\u0437\u0434\u0430\u0451\u043c \u0431\u043e\u0442\u0430, \u0438 \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u043c \u0441 \u0435\u0433\u043e \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f \u0432 telegram<\/a><\/li>\n<li><a href=\"https:\/\/habr.com\/ru\/post\/515148\/\">\u0414\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u0431\u043e\u0442\u0443 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0443 \u043a\u043e\u043c\u0430\u043d\u0434 \u0438 \u0444\u0438\u043b\u044c\u0442\u0440\u044b \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0439<\/a><\/li>\n<li><a href=\"https:\/\/habr.com\/ru\/post\/516908\/\">\u041a\u0430\u043a \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0431\u043e\u0442\u0443 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0443 \u043a\u043b\u0430\u0432\u0438\u0430\u0442\u0443\u0440\u044b<\/a><\/li>\n<\/ol>\n<p>  <\/p>\n<h1 id=\"soderzhanie\">\u0421\u043e\u0434\u0435\u0440\u0436\u0430\u043d\u0438\u0435<\/h1>\n<p>  <\/p>\n<p><em>\u0415\u0441\u043b\u0438 \u0432\u044b \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u0443\u0435\u0442\u0435\u0441\u044c \u0430\u043d\u0430\u043b\u0438\u0437\u043e\u043c \u0434\u0430\u043d\u043d\u044b\u0445 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e \u0432\u0430\u043c \u0431\u0443\u0434\u0443\u0442 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u044b \u043c\u043e\u0438 <a href=\"https:\/\/t.me\/R4marketing\" rel=\"nofollow\">telegram<\/a> \u0438 <a href=\"https:\/\/www.youtube.com\/R4marketing\/?sub_confirmation=1\" rel=\"nofollow\">youtube<\/a> \u043a\u0430\u043d\u0430\u043b\u044b. \u0411\u043e\u043b\u044c\u0448\u0430\u044f \u0447\u0430\u0441\u0442\u044c \u043a\u043e\u043d\u0442\u0435\u043d\u0442\u0430 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u043f\u043e\u0441\u0432\u044f\u0449\u0435\u043d\u044b \u044f\u0437\u044b\u043a\u0443 R.<\/em><\/p>\n<p>  <\/p>\n<ol>\n<li><a href=\"#kakie-tipy-klaviatur-podderzhivaet-telegram-bot\">\u041a\u0430\u043a\u0438\u0435 \u0442\u0438\u043f\u044b \u043a\u043b\u0430\u0432\u0438\u0430\u0442\u0443\u0440 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442 \u0442\u0435\u043b\u0435\u0433\u0440\u0430\u043c \u0431\u043e\u0442<\/a><\/li>\n<li><a href=\"#reply-klaviatura\">Reply \u043a\u043b\u0430\u0432\u0438\u0430\u0442\u0443\u0440\u0430<\/a><\/li>\n<li><a href=\"#inline-klaviatura\">Inline \u043a\u043b\u0430\u0432\u0438\u0430\u0442\u0443\u0440\u0430<\/a><br \/>  3.1. <a href=\"#primer-prosteyshego-bota-s-podderzhkoy-inline-knopok\">\u041f\u0440\u0438\u043c\u0435\u0440 \u043f\u0440\u043e\u0441\u0442\u0435\u0439\u0448\u0435\u0433\u043e \u0431\u043e\u0442\u0430 \u0441 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u043e\u0439 InLine \u043a\u043d\u043e\u043f\u043e\u043a<\/a><br \/>  3.2. <a href=\"#primer-bota-kotoryy-soobschaet-tekuschuyu-pogodu-po-vybrannomu-gorodu\">\u041f\u0440\u0438\u043c\u0435\u0440 \u0431\u043e\u0442\u0430, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0441\u043e\u043e\u0431\u0449\u0430\u0435\u0442 \u0442\u0435\u043a\u0443\u0449\u0443\u044e \u043f\u043e\u0433\u043e\u0434\u0443 \u043f\u043e \u0432\u044b\u0431\u0440\u0430\u043d\u043d\u043e\u043c\u0443 \u0433\u043e\u0440\u043e\u0434\u0443<\/a><br \/>  3.3. <a href=\"#primer-bota-kotoryy-vyvodit-spisok-samyh-svezhih-statey-s-ssylkami-po-ukazannomu-habu-iz-habrcomhttpshabrcom\">\u041f\u0440\u0438\u043c\u0435\u0440 \u0431\u043e\u0442\u0430, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0432\u044b\u0432\u043e\u0434\u0438\u0442 \u0441\u043f\u0438\u0441\u043e\u043a \u0441\u0430\u043c\u044b\u0445 \u0441\u0432\u0435\u0436\u0438\u0445 \u0441\u0442\u0430\u0442\u0435\u0439 \u0441\u043e \u0441\u0441\u044b\u043b\u043a\u0430\u043c\u0438 \u043f\u043e-\u0443\u043a\u0430\u0437\u0430\u043d\u043d\u043e\u043c\u0443 \u0425\u0430\u0431\u0443 \u0438\u0437 habr.com<\/a><\/li>\n<li><a href=\"#zaklyuchenie\">\u0417\u0430\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435<\/a><\/li>\n<\/ol>\n<p>  <\/p>\n<h1 id=\"kakie-tipy-klaviatur-podderzhivaet-telegram-bot\">\u041a\u0430\u043a\u0438\u0435 \u0442\u0438\u043f\u044b \u043a\u043b\u0430\u0432\u0438\u0430\u0442\u0443\u0440 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442 \u0442\u0435\u043b\u0435\u0433\u0440\u0430\u043c \u0431\u043e\u0442<\/h1>\n<p>  <\/p>\n<p>\u041d\u0430 \u043c\u043e\u043c\u0435\u043d\u0442 \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u0438\u044f \u0441\u0442\u0430\u0442\u044c\u0438 <code>telegram.bot<\/code> \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0432\u0430\u043c \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u043a\u043b\u0430\u0432\u0438\u0430\u0442\u0443\u0440\u044b \u0434\u0432\u0443\u0445 \u0442\u0438\u043f\u043e\u0432:<\/p>\n<p>  <\/p>\n<ul>\n<li>Reply \u2014 \u041e\u0441\u043d\u043e\u0432\u043d\u0430\u044f, \u043e\u0431\u044b\u0447\u043d\u0430\u044f \u043a\u043b\u0430\u0432\u0438\u0430\u0442\u0443\u0440\u0430, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u043f\u043e\u0434 \u043f\u0430\u043d\u0435\u043b\u044c\u044e \u0432\u0432\u043e\u0434\u0430 \u0442\u0435\u043a\u0441\u0442\u0430 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f. \u0422\u0430\u043a\u0430\u044f \u043a\u043b\u0430\u0432\u0438\u0430\u0442\u0443\u0440\u0430 \u043f\u0440\u043e\u0441\u0442\u043e \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u0442 \u0431\u043e\u0442\u0443 \u0442\u0435\u043a\u0441\u0442\u043e\u0432\u043e\u0435 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0435, \u0438 \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u0442\u0435\u043a\u0441\u0442\u0430 \u043e\u0442\u043f\u0440\u0430\u0432\u0438\u0442 \u0442\u043e\u0442 \u0442\u0435\u043a\u0441\u0442, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043d\u0430\u043f\u0438\u0441\u0430\u043d \u043d\u0430 \u0441\u0430\u043c\u043e\u0439 \u043a\u043d\u043e\u043f\u043a\u0435.<\/li>\n<li>Inline \u2014 \u041a\u043b\u0430\u0432\u0438\u0430\u0442\u0443\u0440\u0430 \u043f\u0440\u0438\u0432\u044f\u0437\u0430\u043d\u043d\u0430\u044f \u043a \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u043e\u043c\u0443 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044e \u0431\u043e\u0442\u0430. \u0414\u0430\u043d\u043d\u0430\u044f \u043a\u043b\u0430\u0432\u0438\u0430\u0442\u0443\u0440\u0430 \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u0442 \u0431\u043e\u0442\u0443 \u0434\u0430\u043d\u043d\u044b\u0435, \u043f\u0440\u0438\u0432\u044f\u0437\u0430\u043d\u043d\u044b\u0435 \u043a \u043d\u0430\u0436\u0430\u0442\u043e\u0439 \u043a\u043d\u043e\u043f\u043a\u0435, \u044d\u0442\u0438 \u0434\u0430\u043d\u043d\u044b\u0435 \u043c\u043e\u0433\u0443\u0442 \u043e\u0442\u043b\u0438\u0447\u0430\u0442\u044c\u0441\u044f \u043e\u0442 \u0442\u0435\u043a\u0441\u0442\u0430, \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u043d\u043e\u0433\u043e \u043d\u0430 \u0441\u0430\u043c\u043e\u0439 \u043a\u043d\u043e\u043f\u043a\u0435. \u0418 \u043e\u0431\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u044e\u0442\u0441\u044f \u0442\u0430\u043a\u0438\u0435 \u043a\u043d\u043e\u043f\u043a\u0438 \u0447\u0435\u0440\u0435\u0437 <strong>CallbackQueryHandler<\/strong>.<\/li>\n<\/ul>\n<p>  <\/p>\n<p>\u0414\u043b\u044f \u0442\u043e\u0433\u043e, \u0447\u0442\u043e \u0431\u044b \u0431\u043e\u0442 \u043e\u0442\u043a\u0440\u044b\u043b \u043a\u043b\u0430\u0432\u0438\u0430\u0442\u0443\u0440\u0443 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u043f\u0440\u0438 \u043e\u0442\u043f\u0440\u0430\u0432\u043a\u0435 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f \u0447\u0435\u0440\u0435\u0437 \u043c\u0435\u0442\u043e\u0434 <code>sendMessage()<\/code>, \u043f\u0435\u0440\u0435\u0434\u0430\u0442\u044c \u0441\u043e\u0437\u0434\u0430\u043d\u043d\u0443\u044e \u0440\u0430\u043d\u0435\u0435 \u043a\u043b\u0430\u0432\u0438\u0430\u0442\u0443\u0440\u0443 \u0432 \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442 <code>reply_markup<\/code>. <\/p>\n<p>  <\/p>\n<p>\u041d\u0438\u0436\u0435 \u043c\u044b \u0440\u0430\u0437\u0431\u0435\u0440\u0451\u043c \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043f\u0440\u0438\u043c\u0435\u0440\u043e\u0432.<\/p>\n<p>  <\/p>\n<h1 id=\"reply-klaviatura\">Reply \u043a\u043b\u0430\u0432\u0438\u0430\u0442\u0443\u0440\u0430<\/h1>\n<p>  <\/p>\n<p>\u041a\u0430\u043a \u044f \u0443\u0436\u0435 \u043f\u0438\u0441\u0430\u043b \u0432\u044b\u0448\u0435, \u044d\u0442\u043e \u043e\u0441\u043d\u043e\u0432\u043d\u0430\u044f \u043a\u043b\u0430\u0432\u0438\u0430\u0442\u0443\u0440\u0430 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0431\u043e\u0442\u043e\u043c.<\/p>\n<p>  <\/p>\n<div class=\"spoiler\" role=\"button\" tabindex=\"0\">                         <b class=\"spoiler_title\">\u041f\u0440\u0438\u043c\u0435\u0440 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f Reply \u043a\u043b\u0430\u0432\u0438\u0430\u0442\u0443\u0440\u044b \u0438\u0437 \u043e\u0444\u0438\u0446\u0438\u0430\u043b\u044c\u043d\u043e\u0439 \u0441\u043f\u0440\u0430\u0432\u043a\u0438<\/b>                         <\/p>\n<div class=\"spoiler_text\">\n<pre><code class=\"r\">bot &lt;- Bot(token = &quot;TOKEN&quot;) chat_id &lt;- &quot;CHAT_ID&quot;  # Create Custom Keyboard text &lt;- &quot;Aren't those custom keyboards cool?&quot; RKM &lt;- ReplyKeyboardMarkup(   keyboard = list(     list(KeyboardButton(&quot;Yes, they certainly are!&quot;)),     list(KeyboardButton(&quot;I'm not quite sure&quot;)),     list(KeyboardButton(&quot;No...&quot;))   ),   resize_keyboard = FALSE,   one_time_keyboard = TRUE )  # Send Custom Keyboard bot$sendMessage(chat_id, text, reply_markup = RKM)<\/code><\/pre>\n<\/div><\/div>\n<p>  <\/p>\n<p>\u0412\u044b\u0448\u0435 \u043f\u0440\u0438\u0432\u0435\u0434\u0451\u043d \u043f\u0440\u0438\u043c\u0435\u0440 \u0438\u0437 \u043e\u0444\u0438\u0446\u0438\u0430\u043b\u044c\u043d\u043e\u0439 \u0441\u043f\u0440\u0430\u0432\u043a\u0438 \u043f\u0430\u043a\u0435\u0442\u0430 <code>telegram.bot<\/code>. \u0414\u043b\u044f \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u043a\u043b\u0430\u0432\u0438\u0430\u0442\u0443\u0440\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0444\u0443\u043d\u043a\u0446\u0438\u044f <code>ReplyKeyboardMarkup()<\/code>, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0432 \u0441\u0432\u043e\u044e \u043e\u0447\u0435\u0440\u0435\u0434\u044c \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0435\u0442 \u0441\u043f\u0438\u0441\u043e\u043a \u0441\u043f\u0438\u0441\u043a\u043e\u0432 \u043a\u043d\u043e\u043f\u043e\u043a, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0441\u043e\u0437\u0434\u0430\u044e\u0442\u0441\u044f \u0444\u0443\u043d\u043a\u0446\u0438\u0435\u0439 <code>KeyboardButton()<\/code>.<\/p>\n<p>  <\/p>\n<p>\u041f\u043e\u0447\u0435\u043c\u0443 \u0432 <code>ReplyKeyboardMarkup()<\/code> \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u043f\u0435\u0440\u0435\u0434\u0430\u0432\u0430\u0442\u044c \u043d\u0435 \u043f\u0440\u043e\u0441\u0442\u043e \u0441\u043f\u0438\u0441\u043e\u043a, \u0430 \u0441\u043f\u0438\u0441\u043e\u043a \u0441\u043f\u0438\u0441\u043a\u043e\u0432? \u0414\u0435\u043b\u043e \u0432 \u0442\u043e\u043c, \u0447\u0442\u043e \u0432\u044b \u043f\u0435\u0440\u0435\u0434\u0430\u0451\u0442\u0435 \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u0439 \u0441\u043f\u0438\u0441\u043e\u043a, \u0438 \u0432 \u043d\u0451\u043c \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u043c\u0438 \u0441\u043f\u0438\u0441\u043a\u0430\u043c\u0438 \u0432\u044b \u0437\u0430\u0434\u0430\u0451\u0442\u0435 \u043a\u0430\u0436\u0434\u044b\u0439 \u0440\u044f\u0434 \u043a\u043d\u043e\u043f\u043e\u043a, \u0442.\u043a. \u0432 \u043e\u0434\u0438\u043d \u0440\u044f\u0434 \u043c\u043e\u0436\u043d\u043e \u0440\u0430\u0441\u043f\u043e\u043b\u043e\u0436\u0438\u0442\u044c \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043a\u043d\u043e\u043f\u043e\u043a.<\/p>\n<p>  <\/p>\n<p>\u0410\u0440\u0433\u0443\u043c\u0435\u043d\u0442 <code>resize_keyboard<\/code> \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u043f\u043e\u0434\u0431\u0438\u0440\u0430\u0442\u044c \u043e\u043f\u0442\u0438\u043c\u0430\u043b\u044c\u043d\u044b\u0439 \u0440\u0430\u0437\u043c\u0435\u0440 \u043a\u043d\u043e\u043f\u043e\u043a \u043a\u043b\u0430\u0432\u0438\u0430\u0442\u0443\u0440\u044b, \u0430 \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442 <code>one_time_keyboard<\/code> \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0441\u043a\u0440\u044b\u0432\u0430\u0442\u044c \u043a\u043b\u0430\u0432\u0438\u0430\u0442\u0443\u0440\u0443 \u043f\u043e\u0441\u043b\u0435 \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u043d\u0430\u0436\u0430\u0442\u0438\u044f \u043d\u0430 \u043a\u043d\u043e\u043f\u043a\u0443.<\/p>\n<p>  <\/p>\n<p>\u0414\u0430\u0432\u0430\u0439\u0442\u0435 \u043d\u0430\u043f\u0438\u0448\u0435\u043c \u043f\u0440\u043e\u0441\u0442\u0435\u0439\u0448\u0435\u0433\u043e \u0431\u043e\u0442\u0430, \u0443 \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u0431\u0443\u0434\u0435\u0442 3 \u043a\u043d\u043e\u043f\u043a\u0438:<\/p>\n<p>  <\/p>\n<ul>\n<li>\u0427\u0430\u0442 ID \u2014 \u0417\u0430\u043f\u0440\u043e\u0441\u0438\u0442\u044c \u0447\u0430\u0442 ID \u0434\u0438\u0430\u043b\u043e\u0433\u0430 \u0441 \u0431\u043e\u0442\u043e\u043c<\/li>\n<li>\u041c\u043e\u0451 \u0438\u043c\u044f \u2014 \u0417\u0430\u043f\u0440\u043e\u0441\u0438\u0442\u044c \u0441\u0432\u043e\u0451 \u0438\u043c\u044f<\/li>\n<li>\u041c\u043e\u0439 \u043b\u043e\u0433\u0438\u043d \u2014 \u0417\u0430\u043f\u0440\u043e\u0441\u0438\u0442\u044c \u0441\u0432\u043e\u0451 \u0438\u043c\u044f \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f \u0432 \u0442\u0435\u043b\u0435\u0433\u0440\u0430\u043c<\/li>\n<\/ul>\n<p>  <\/p>\n<div class=\"spoiler\" role=\"button\" tabindex=\"0\">                         <b class=\"spoiler_title\">\u041a\u043e\u0434 1: \u041f\u0440\u043e\u0441\u0442\u043e\u0439 \u0431\u043e\u0442 \u0441 Reply \u043a\u043b\u0430\u0432\u0438\u0430\u0442\u0443\u0440\u043e\u0439<\/b>                         <\/p>\n<div class=\"spoiler_text\">\n<pre><code class=\"r\">library(telegram.bot)  # \u0441\u043e\u0437\u0434\u0430\u0451\u043c \u044d\u043a\u0437\u0435\u043c\u043f\u043b\u044f\u0440 \u043a\u043b\u0430\u0441\u0441\u0430 Updater updater &lt;- Updater('\u0422\u041e\u041a\u0415\u041d \u0412\u0410\u0428\u0415\u0413\u041e \u0411\u041e\u0422\u0410')  # \u0441\u043e\u0437\u0434\u0430\u0451\u043c \u043c\u0435\u0442\u043e\u0434\u044b ## \u043c\u0435\u0442\u043e\u0434 \u0434\u043b\u044f \u0437\u0430\u043f\u0443\u0441\u043a\u0430 \u043a\u043b\u0430\u0432\u0438\u0430\u0442\u0443\u0440\u044b start &lt;- function(bot, update) {    # \u0441\u043e\u0437\u0434\u0430\u0451\u043c \u043a\u043b\u0430\u0432\u0438\u0430\u0442\u0443\u0440\u0443   RKM &lt;- ReplyKeyboardMarkup(     keyboard = list(       list(KeyboardButton(&quot;\u0427\u0430\u0442 ID&quot;)),       list(KeyboardButton(&quot;\u041c\u043e\u0451 \u0438\u043c\u044f&quot;)),       list(KeyboardButton(&quot;\u041c\u043e\u0439 \u043b\u043e\u0433\u0438\u043d&quot;))     ),     resize_keyboard = FALSE,     one_time_keyboard = TRUE   )    # \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u043c \u043a\u043b\u0430\u0432\u0438\u0430\u0442\u0443\u0440\u0443   bot$sendMessage(update$message$chat_id,                   text = '\u0412\u044b\u0431\u0435\u0440\u0438\u0442\u0435 \u043a\u043e\u043c\u0430\u043d\u0434\u0443',                    reply_markup = RKM)  }  ## \u043c\u0435\u0442\u043e\u0434 \u0432\u043e\u0437\u0432\u0440\u0430\u0437\u0430\u044e\u0449\u0438\u0439 id \u0447\u0430\u0442\u0430 chat_id &lt;- function(bot, update) {    bot$sendMessage(update$message$chat_id,                    text = paste0(&quot;\u0427\u0430\u0442 id \u044d\u0442\u043e\u0433\u043e \u0434\u0438\u0430\u043b\u043e\u0433\u0430: &quot;, update$message$chat_id),                   parse_mode = &quot;Markdown&quot;)  }  ## \u043c\u0435\u0442\u043e\u0434 \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u044e\u0449\u0438\u0439 \u0438\u043c\u044f my_name &lt;- function(bot, update) {    bot$sendMessage(update$message$chat_id,                    text = paste0(&quot;\u0412\u0430\u0441 \u0437\u043e\u0432\u0443\u0442 &quot;, update$message$from$first_name),                   parse_mode = &quot;Markdown&quot;)  }  ## \u043c\u0435\u0442\u043e\u0434 \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u044e\u0449\u0438\u0439 \u043b\u043e\u0433\u0438\u043d my_username &lt;- function(bot, update) {    bot$sendMessage(update$message$chat_id,                    text = paste0(&quot;\u0412\u0430\u0448 \u043b\u043e\u0433\u0438\u043d &quot;, update$message$from$username),                   parse_mode = &quot;Markdown&quot;)  }  # \u0441\u043e\u0437\u0434\u0430\u0451\u043c \u0444\u0438\u043b\u044c\u0442\u0440\u044b ## \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f \u0441 \u0442\u0435\u043a\u0441\u0442\u043e\u043c \u0427\u0430\u0442 ID MessageFilters$chat_id &lt;- BaseFilter(function(message) {    # \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u043c \u0442\u0435\u043a\u0441\u0442 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f   message$text == &quot;\u0427\u0430\u0442 ID&quot;  } )  ## \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f \u0441 \u0442\u0435\u043a\u0441\u0442\u043e\u043c \u041c\u043e\u0451 \u0438\u043c\u044f MessageFilters$name &lt;- BaseFilter(function(message) {    # \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u043c \u0442\u0435\u043a\u0441\u0442 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f   message$text == &quot;\u041c\u043e\u0451 \u0438\u043c\u044f&quot;  } )  ## \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f \u0441 \u0442\u0435\u043a\u0441\u0442\u043e\u043c \u041c\u043e\u0439 \u043b\u043e\u0433\u0438\u043d MessageFilters$username &lt;- BaseFilter(function(message) {    # \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u043c \u0442\u0435\u043a\u0441\u0442 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f   message$text == &quot;\u041c\u043e\u0439 \u043b\u043e\u0433\u0438\u043d&quot; )  # \u0441\u043e\u0437\u0434\u0430\u0451\u043c \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0438 h_start    &lt;- CommandHandler('start', start) h_chat_id  &lt;- MessageHandler(chat_id, filters = MessageFilters$chat_id) h_name     &lt;- MessageHandler(my_name, filters = MessageFilters$name) h_username &lt;- MessageHandler(my_username, filters = MessageFilters$username)  # \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0438 \u0432 \u0434\u0438\u0441\u043f\u0435\u0442\u0447\u0435\u0440 updater &lt;- updater +              h_start +             h_chat_id +             h_name +             h_username  # \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u043c \u0431\u043e\u0442\u0430  updater$start_polling()<\/code><\/pre>\n<\/div><\/div>\n<p>  <\/p>\n<blockquote><p>\u0417\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u0435 \u043f\u0440\u0438\u0432\u0435\u0434\u0451\u043d\u043d\u044b\u0439 \u0432\u044b\u0448\u0435 \u043f\u0440\u0438\u043c\u0435\u0440 \u043a\u043e\u0434\u0430, \u043f\u0440\u0435\u0434\u0432\u0430\u0440\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0437\u0430\u043c\u0435\u043d\u0438\u0432 &#8216;\u0422\u041e\u041a\u0415\u041d \u0412\u0410\u0428\u0415\u0413\u041e \u0411\u041e\u0422\u0410&#8217; \u043d\u0430 \u0440\u0435\u0430\u043b\u044c\u043d\u044b\u0439 \u0442\u043e\u043a\u0435\u043d, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0432\u044b \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u0438 \u043f\u0440\u0438 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0438 \u0431\u043e\u0442\u0430 \u0447\u0435\u0440\u0435\u0437 <em>BotFather<\/em> (\u043e \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0438 \u0431\u043e\u0442\u0430 \u044f \u0440\u0430\u0441\u0441\u043a\u0430\u0437\u044b\u0432\u0430\u043b \u0432 <a href=\"https:\/\/habr.com\/ru\/post\/511222\/#sozdanie-telegram-bota\">\u043f\u0435\u0440\u0432\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435<\/a>).<\/p><\/blockquote>\n<p>\u041f\u043e\u0441\u043b\u0435 \u0437\u0430\u043f\u0443\u0441\u043a\u0430 \u0437\u0430\u0434\u0430\u0439\u0442\u0435 \u0431\u043e\u0442\u0443 \u043a\u043e\u043c\u0430\u043d\u0434\u0443 <code>\/start<\/code>, \u0442.\u043a. \u0438\u043c\u0435\u043d\u043d\u043e \u0435\u0451 \u043c\u044b \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u043b\u0438 \u0434\u043b\u044f \u0437\u0430\u043f\u0443\u0441\u043a\u0430 \u043a\u043b\u0430\u0432\u0438\u0430\u0442\u0443\u0440\u044b.<\/p>\n<p>  <\/p>\n<p><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/post_images\/eac\/355\/de2\/eac355de2d5f780f2bbc12fb9157456d.png\"><\/p>\n<p>  <\/p>\n<p>\u0415\u0441\u043b\u0438 \u043d\u0430 \u0434\u0430\u043d\u043d\u044b\u0439 \u043c\u043e\u043c\u0435\u043d\u0442 \u0432\u0430\u043c \u0441\u043b\u043e\u0436\u043d\u043e \u0440\u0430\u0437\u043e\u0431\u0440\u0430\u0442\u044c \u043f\u0440\u0438\u0432\u0435\u0434\u0451\u043d\u043d\u044b\u0439 \u043f\u0440\u0438\u043c\u0435\u0440 \u043a\u043e\u0434\u0430, \u0441 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0435\u043c \u043c\u0435\u0442\u043e\u0434\u043e\u0432, \u0444\u0438\u043b\u044c\u0442\u0440\u043e\u0432 \u0438 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u043e\u0432, \u0442\u043e \u0441\u043b\u0435\u0434\u0443\u0435\u0442 \u0432\u0435\u0440\u043d\u0443\u0442\u044c\u0441\u044f \u043a \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0435\u0439 <a href=\"https:\/\/habr.com\/ru\/post\/515148\/\">\u0441\u0442\u0430\u0442\u044c\u0435<\/a>, \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u044f \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u043e \u0432\u0441\u0451 \u044d\u0442\u043e \u043e\u043f\u0438\u0441\u0430\u043b.<\/p>\n<p>  <\/p>\n<p>\u041c\u044b \u0441\u043e\u0437\u0434\u0430\u043b\u0438 4 \u043c\u0435\u0442\u043e\u0434\u0430:<\/p>\n<p>  <\/p>\n<ul>\n<li>start \u2014 \u0417\u0430\u043f\u0443\u0441\u043a \u043a\u043b\u0430\u0432\u0438\u0430\u0442\u0443\u0440\u044b<\/li>\n<li>chat_id \u2014 \u0417\u0430\u043f\u0440\u043e\u0441 \u0438\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440\u0430 \u0447\u0430\u0442\u0430<\/li>\n<li>my_name \u2014 \u0417\u0430\u043f\u0440\u043e\u0441 \u0441\u0432\u043e\u0435\u0433\u043e \u0438\u043c\u0435\u043d\u0438<\/li>\n<li>my_username \u2014 \u0417\u0430\u043f\u0440\u043e\u0441 \u0441\u0432\u043e\u0435\u0433\u043e \u043b\u043e\u0433\u0438\u043d\u0430<\/li>\n<\/ul>\n<p>  <\/p>\n<p>\u0412 \u043e\u0431\u044a\u0435\u043a\u0442 <em>MessageFilters<\/em> \u0434\u043e\u0431\u0430\u0432\u0438\u043b\u0438 3 \u0444\u0438\u043b\u044c\u0442\u0440\u0430 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0439, \u043f\u043e \u0438\u0445 \u0442\u0435\u043a\u0441\u0442\u0443:<\/p>\n<p>  <\/p>\n<ul>\n<li>chat_id \u2014 \u0421\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f \u0441 \u0442\u0435\u043a\u0441\u0442\u043e\u043c <code>&quot;\u0427\u0430\u0442 ID&quot;<\/code><\/li>\n<li>name \u2014 \u0421\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f \u0441 \u0442\u0435\u043a\u0441\u0442\u043e\u043c <code>&quot;\u041c\u043e\u0451 \u0438\u043c\u044f&quot;<\/code><\/li>\n<li>username \u2014 \u0421\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f \u0441 \u0442\u0435\u043a\u0441\u0442\u043e\u043c <code>&quot;\u041c\u043e\u0439 \u043b\u043e\u0433\u0438\u043d&quot;<\/code><\/li>\n<\/ul>\n<p>  <\/p>\n<p>\u0418 \u0441\u043e\u0437\u0434\u0430\u043b\u0438 4 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0430, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043f\u043e \u0437\u0430\u0434\u0430\u043d\u043d\u044b\u043c \u043a\u043e\u043c\u0430\u043d\u0434\u0430\u043c \u0438 \u0444\u0438\u043b\u044c\u0442\u0440\u0430\u043c \u0431\u0443\u0434\u0443\u0442 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0442\u044c \u0443\u043a\u0430\u0437\u0430\u043d\u043d\u044b\u0435 \u043c\u0435\u0442\u043e\u0434\u044b.<\/p>\n<p>  <\/p>\n<pre><code class=\"r\"># \u0441\u043e\u0437\u0434\u0430\u0451\u043c \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0438 h_start    &lt;- CommandHandler('start', start) h_chat_id  &lt;- MessageHandler(chat_id, filters = MessageFilters$chat_id) h_name     &lt;- MessageHandler(my_name, filters = MessageFilters$name) h_username &lt;- MessageHandler(my_username, filters = MessageFilters$username)<\/code><\/pre>\n<p>  <\/p>\n<p>\u0421\u0430\u043c\u0430 \u043a\u043b\u0430\u0432\u0438\u0430\u0442\u0443\u0440\u0430 \u0441\u043e\u0437\u0434\u0430\u0451\u0442\u0441\u044f \u0432\u043d\u0443\u0442\u0440\u0438 \u043c\u0435\u0442\u043e\u0434\u0430 <code>start()<\/code> \u043a\u043e\u043c\u0430\u043d\u0434\u043e\u0439 <code>ReplyKeyboardMarkup()<\/code>.<\/p>\n<p>  <\/p>\n<pre><code class=\"r\">RKM &lt;- ReplyKeyboardMarkup(     keyboard = list(       list(KeyboardButton(&quot;\u0427\u0430\u0442 ID&quot;)),       list(KeyboardButton(&quot;\u041c\u043e\u0451 \u0438\u043c\u044f&quot;)),       list(KeyboardButton(&quot;\u041c\u043e\u0439 \u043b\u043e\u0433\u0438\u043d&quot;))     ),     resize_keyboard = FALSE,     one_time_keyboard = TRUE )<\/code><\/pre>\n<p>  <\/p>\n<p>\u0412 \u043d\u0430\u0448\u0435\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u0432\u0441\u0435 \u043a\u043d\u043e\u043f\u043a\u0438 \u043c\u044b \u0440\u0430\u0441\u043f\u043e\u043b\u043e\u0436\u0438\u043b\u0438 \u0434\u0440\u0443\u0433 \u043f\u043e\u0434 \u0434\u0440\u0443\u0433\u043e\u043c, \u043d\u043e \u043c\u044b \u043c\u043e\u0436\u0435\u043c \u0440\u0430\u0441\u043f\u043e\u043b\u043e\u0436\u0438\u0442\u044c \u0438\u0445 \u0432 \u043e\u0434\u0438\u043d \u0440\u044f\u0434, \u0432\u043d\u0435\u0441\u044f \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u0432 \u0441\u043f\u0438\u0441\u043e\u043a \u0441\u043f\u0438\u0441\u043a\u043e\u0432 \u043a\u043d\u043e\u043f\u043e\u043a. \u0422.\u043a. \u043e\u0434\u0438\u043d \u0440\u044f\u0434 \u0432\u043d\u0443\u0442\u0440\u0438 \u043a\u043b\u0430\u0432\u0438\u0430\u0442\u0443\u0440\u044b \u0441\u043e\u0437\u0434\u0430\u0451\u0442\u0441\u044f \u0447\u0435\u0440\u0435\u0437 \u0432\u043b\u043e\u0436\u0435\u043d\u043d\u044b\u0439 \u0441\u043f\u0438\u0441\u043e\u043a \u043a\u043d\u043e\u043f\u043e\u043a, \u0442\u043e \u0434\u043b\u044f \u0442\u043e\u0433\u043e, \u0447\u0442\u043e \u0431\u044b \u0432\u044b\u0432\u0435\u0441\u0442\u0438 \u043d\u0430\u0448\u0438 \u043a\u043d\u043e\u043f\u043a\u0438 \u0432 \u043e\u0434\u0438\u043d \u0440\u044f\u0434 \u043d\u0430\u0434\u043e \u043f\u0435\u0440\u0435\u043f\u0438\u0441\u0430\u0442\u044c \u0447\u0430\u0441\u0442\u044c \u043a\u043e\u0434\u0430 \u043f\u043e \u043f\u043e\u0441\u0442\u0440\u043e\u0435\u043d\u0438\u044e \u043a\u043b\u0430\u0432\u0438\u0430\u0442\u0443\u0440\u044b \u0432\u043e\u0442 \u0442\u0430\u043a:<\/p>\n<p>  <\/p>\n<pre><code class=\"r\">RKM &lt;- ReplyKeyboardMarkup(     keyboard = list(       list(           KeyboardButton(&quot;\u0427\u0430\u0442 ID&quot;),           KeyboardButton(&quot;\u041c\u043e\u0451 \u0438\u043c\u044f&quot;),           KeyboardButton(&quot;\u041c\u043e\u0439 \u043b\u043e\u0433\u0438\u043d&quot;)      )     ),     resize_keyboard = FALSE,     one_time_keyboard = TRUE )<\/code><\/pre>\n<p>  <\/p>\n<p><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/post_images\/651\/279\/16c\/65127916c764ab750f075e7eacff136a.png\"><\/p>\n<p>  <\/p>\n<p>\u041e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043a\u043b\u0430\u0432\u0438\u0430\u0442\u0443\u0440\u0430 \u0432 \u0447\u0430\u0442 \u043c\u0435\u0442\u043e\u0434\u043e\u043c <code>sendMessage()<\/code>, \u0432 \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u0435 <code>reply_markup<\/code>.<\/p>\n<p>  <\/p>\n<pre><code class=\"r\">  bot$sendMessage(update$message$chat_id,                   text = '\u0412\u044b\u0431\u0435\u0440\u0438\u0442\u0435 \u043a\u043e\u043c\u0430\u043d\u0434\u0443',                    reply_markup = RKM)<\/code><\/pre>\n<p>  <\/p>\n<h1 id=\"inline-klaviatura\">Inline \u043a\u043b\u0430\u0432\u0438\u0430\u0442\u0443\u0440\u0430<\/h1>\n<p>  <\/p>\n<p>\u041a\u0430\u043a \u044f \u0443\u0436\u0435 \u043f\u0438\u0441\u0430\u043b \u0432\u044b\u0448\u0435, Inline \u043a\u043b\u0430\u0432\u0438\u0430\u0442\u0443\u0440\u0430 \u043f\u0440\u0438\u0432\u044f\u0437\u0430\u043d\u0430 \u043a \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u043e\u043c\u0443 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044e. \u0421 \u043d\u0435\u0439 \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0441\u043b\u043e\u0436\u043d\u0435\u0435 \u0447\u0435\u043c \u0441 \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u0439 \u043a\u043b\u0430\u0432\u0438\u0430\u0442\u0443\u0440\u043e\u0439. <\/p>\n<p>  <\/p>\n<p>\u0418\u0437\u043d\u0430\u0447\u0430\u043b\u044c\u043d\u043e \u0432\u0430\u043c \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0431\u043e\u0442\u0443 \u043c\u0435\u0442\u043e\u0434, \u0434\u043b\u044f \u0432\u044b\u0437\u043e\u0432\u0430 Inline \u043a\u043b\u0430\u0432\u0438\u0430\u0442\u0443\u0440\u044b. <\/p>\n<p>  <\/p>\n<p>\u0414\u043b\u044f \u043e\u0442\u0432\u0435\u0442\u0430 \u043d\u0430 \u043d\u0430\u0436\u0430\u0442\u0438\u0435 Inline \u043a\u043d\u043e\u043f\u043a\u0438 \u0442\u0430\u043a\u0436\u0435 \u043c\u043e\u0436\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043c\u0435\u0442\u043e\u0434 \u0431\u043e\u0442\u0430 <code>answerCallbackQuery()<\/code>, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043c\u043e\u0436\u0435\u0442 \u0432\u044b\u0432\u0435\u0441\u0442\u0438 \u0443\u0432\u0435\u0434\u043e\u043c\u043b\u0435\u043d\u0438\u0435 \u0432 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0435 telegram, \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044e \u043d\u0430\u0436\u0430\u0432\u0448\u0435\u043c\u0443 Inline \u043a\u043d\u043e\u043f\u043a\u0443. <\/p>\n<p>  <\/p>\n<p>\u0414\u0430\u043d\u043d\u044b\u0435 \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u043d\u044b\u0435 \u0441 Inline \u043a\u043d\u043e\u043f\u043a\u0438 \u043d\u0435 \u044f\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u0442\u0435\u043a\u0441\u0442\u043e\u043c, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0434\u043b\u044f \u0438\u0445 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u044b\u0439 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043a\u043e\u043c\u0430\u043d\u0434\u044b <code>CallbackQueryHandler()<\/code>.<\/p>\n<p>  <\/p>\n<p>\u041a\u043e\u0434 \u043f\u043e\u0441\u0442\u0440\u043e\u0435\u043d\u0438\u044f Inline \u043a\u043b\u0430\u0432\u0438\u0430\u0442\u0443\u0440\u044b \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043f\u0440\u0438\u0432\u043e\u0434\u0438\u0442\u0441\u044f \u0432 \u043e\u0444\u0438\u0446\u0438\u0430\u043b\u044c\u043d\u043e\u0439 \u0441\u043f\u0440\u0430\u0432\u043a\u0435 \u043f\u0430\u043a\u0435\u0442\u0430 <code>telegram.bot<\/code>.<\/p>\n<p>  <\/p>\n<div class=\"spoiler\" role=\"button\" tabindex=\"0\">                         <b class=\"spoiler_title\">\u041a\u043e\u0434 \u043f\u043e\u0441\u0442\u0440\u043e\u0435\u043d\u0438\u044f Inline \u043a\u043b\u0430\u0432\u0438\u0430\u0442\u0443\u0440\u044b \u0438\u0437 \u043e\u0444\u0438\u0446\u0438\u0430\u043b\u044c\u043d\u043e\u0439 \u0441\u043f\u0440\u0430\u0432\u043a\u0438<\/b>                         <\/p>\n<div class=\"spoiler_text\">\n<pre><code class=\"r\"># Initialize bot bot &lt;- Bot(token = &quot;TOKEN&quot;) chat_id &lt;- &quot;CHAT_ID&quot;  # Create Inline Keyboard text &lt;- &quot;Could you type their phone number, please?&quot; IKM &lt;- InlineKeyboardMarkup(   inline_keyboard = list(     list(       InlineKeyboardButton(1),       InlineKeyboardButton(2),       InlineKeyboardButton(3)     ),     list(       InlineKeyboardButton(4),       InlineKeyboardButton(5),       InlineKeyboardButton(6)     ),     list(       InlineKeyboardButton(7),       InlineKeyboardButton(8),       InlineKeyboardButton(9)     ),     list(       InlineKeyboardButton(&quot;*&quot;),       InlineKeyboardButton(0),       InlineKeyboardButton(&quot;#&quot;)     )   ) )  # Send Inline Keyboard bot$sendMessage(chat_id, text, reply_markup = IKM)<\/code><\/pre>\n<\/div><\/div>\n<p>  <\/p>\n<p>\u0421\u0442\u0440\u043e\u0438\u0442\u044c Inline \u043a\u043b\u0430\u0432\u0438\u0430\u0442\u0443\u0440\u0443 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043a\u043e\u043c\u0430\u043d\u0434\u044b <code>InlineKeyboardMarkup()<\/code>, \u043f\u043e \u0442\u0430\u043a\u043e\u043c\u0443 \u0436\u0435 \u043f\u0440\u0438\u043d\u0446\u0438\u043f\u0443, \u043a\u0430\u043a \u0438 Reply \u043a\u043b\u0430\u0432\u0438\u0430\u0442\u0443\u0440\u0443. \u0412 <code>InlineKeyboardMarkup()<\/code> \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u043f\u0435\u0440\u0435\u0434\u0430\u0442\u044c \u0441\u043f\u0438\u0441\u043e\u043a, \u0441\u043f\u0438\u0441\u043a\u043e\u0432 Inline \u043a\u043d\u043e\u043f\u043e\u043a, \u043a\u0430\u0436\u0434\u0430\u044f \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u0430\u044f \u043a\u043d\u043e\u043f\u043a\u0430 \u0441\u043e\u0437\u0434\u0430\u0451\u0442\u0441\u044f \u0444\u0443\u043d\u043a\u0446\u0438\u0435\u0439 <code>InlineKeyboardButton()<\/code>.<\/p>\n<p>  <\/p>\n<p>Inline \u043a\u043d\u043e\u043f\u043a\u0430 \u043c\u043e\u0436\u0435\u0442 \u043b\u0438\u0431\u043e \u043f\u0435\u0440\u0435\u0434\u0430\u0432\u0430\u0442\u044c \u0431\u043e\u0442\u0443 \u043a\u0430\u043a\u0438\u0435-\u0442\u043e \u0434\u0430\u043d\u043d\u044b\u0435 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u0430 <code>callback_data<\/code>, \u043b\u0438\u0431\u043e \u043e\u0442\u043a\u0440\u044b\u0432\u0430\u0442\u044c \u043a\u0430\u043a\u0443\u044e-\u043b\u0438\u0431\u043e HTML \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0443, \u0437\u0430\u0434\u0430\u043d\u043d\u0443\u044e \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u0430 <code>url<\/code>. <\/p>\n<p>  <\/p>\n<p>\u0412 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0435 \u0431\u0443\u0434\u0435\u0442 \u0441\u043f\u0438\u0441\u043e\u043a, \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u043a\u0430\u0436\u0434\u044b\u0439 \u044d\u043b\u0435\u043c\u0435\u043d\u0442 \u0442\u0430\u043a \u0436\u0435 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0441\u043f\u0438\u0441\u043a\u043e\u043c Inline \u043a\u043d\u043e\u043f\u043e\u043a, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u043e\u0431\u044a\u0435\u0434\u0438\u043d\u0438\u0442\u044c \u0432 \u043e\u0434\u0438\u043d \u0440\u044f\u0434.<\/p>\n<p>  <\/p>\n<p>\u0414\u0430\u043b\u0435\u0435 \u043c\u044b \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043f\u0440\u0438\u043c\u0435\u0440\u043e\u0432 \u0431\u043e\u0442\u043e\u0432 \u0441 Inline \u043a\u043d\u043e\u043f\u043a\u0430\u043c\u0438.<\/p>\n<p>  <\/p>\n<h3 id=\"primer-prosteyshego-bota-s-podderzhkoy-inline-knopok\">\u041f\u0440\u0438\u043c\u0435\u0440 \u043f\u0440\u043e\u0441\u0442\u0435\u0439\u0448\u0435\u0433\u043e \u0431\u043e\u0442\u0430 \u0441 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u043e\u0439 InLine \u043a\u043d\u043e\u043f\u043e\u043a<\/h3>\n<p>  <\/p>\n<p>\u0414\u043b\u044f \u043d\u0430\u0447\u0430\u043b\u0430 \u043c\u044b \u043d\u0430\u043f\u0438\u0448\u0435\u043c \u0431\u043e\u0442\u0430 \u0434\u043b\u044f \u044d\u043a\u0441\u043f\u0440\u0435\u0441\u0441 \u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u043d\u0430 covid-19. \u041f\u043e \u043a\u043e\u043c\u0430\u043d\u0434\u0435 <code>\/test<\/code>, \u043e\u043d \u0431\u0443\u0434\u0435\u0442 \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u0442\u044c \u0432\u0430\u043c \u043a\u043b\u0430\u0432\u0438\u0430\u0442\u0443\u0440\u0443 \u0441 \u0434\u0432\u0443\u043c\u044f \u043a\u043d\u043e\u043f\u043a\u0430\u043c\u0438, \u0432 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0438 \u043e\u0442 \u043d\u0430\u0436\u0430\u0442\u043e\u0439 \u043a\u043d\u043e\u043f\u043a\u0438 \u043e\u043d \u0431\u0443\u0434\u0435\u0442 \u043f\u0440\u0438\u0441\u044b\u043b\u0430\u0442\u044c \u0432\u0430\u043c \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0435 \u0441 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0430\u043c\u0438 \u0432\u0430\u0448\u0435\u0433\u043e \u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f.<\/p>\n<p>  <\/p>\n<div class=\"spoiler\" role=\"button\" tabindex=\"0\">                         <b class=\"spoiler_title\">\u041a\u043e\u0434 2: \u041f\u0440\u043e\u0441\u0442\u0435\u0439\u0448\u0438\u0439 \u0431\u043e\u0442 \u0441 Inline \u043a\u043b\u0430\u0432\u0438\u0430\u0442\u0443\u0440\u043e\u0439<\/b>                         <\/p>\n<div class=\"spoiler_text\">\n<pre><code class=\"r\">library(telegram.bot)  # \u0441\u043e\u0437\u0434\u0430\u0451\u043c \u044d\u043a\u0437\u0435\u043c\u043f\u043b\u044f\u0440 \u043a\u043b\u0430\u0441\u0441\u0430 Updater updater &lt;- Updater('\u0422\u041e\u041a\u0415\u041d \u0412\u0410\u0428\u0415\u0413\u041e \u0411\u041e\u0422\u0410')  # \u043c\u0435\u0442\u043e\u0434 \u0434\u043b\u044f \u043e\u0442\u043f\u0440\u0430\u0432\u043a\u0438 InLine \u043a\u043b\u0430\u0432\u0438\u0430\u0442\u0443\u0440\u044b test &lt;- function(bot, update) {    # \u0441\u043e\u0437\u0434\u0430\u0451\u043c InLine \u043a\u043b\u0430\u0432\u0438\u0430\u0442\u0443\u0440\u0443   IKM &lt;- InlineKeyboardMarkup(     inline_keyboard = list(       list(         InlineKeyboardButton(&quot;\u0414\u0430&quot;, callback_data = 'yes'),         InlineKeyboardButton(&quot;\u041d\u0435\u0442&quot;, callback_data = 'no')       )     )   )    # \u041e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u043c \u043a\u043b\u0430\u0432\u0438\u0430\u0442\u0443\u0440\u0443 \u0432 \u0447\u0430\u0442   bot$sendMessage(update$message$chat_id,                    text = &quot;\u0412\u044b \u0431\u043e\u043b\u0435\u0442\u0435 \u043a\u043e\u0440\u043e\u043d\u0430\u0432\u0438\u0440\u0443\u0441\u043e\u043c?&quot;,                    reply_markup = IKM) }  # \u043c\u0435\u0442\u043e\u0434 \u0434\u043b\u044f \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u043d\u0430\u0436\u0430\u0442\u0438\u044f \u043a\u043d\u043e\u043f\u043a\u0438 answer_cb &lt;- function(bot, update) {    # \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u043d\u044b\u0435 \u0434\u0430\u043d\u043d\u044b\u0435 \u0441 \u043a\u043d\u043e\u043f\u043a\u0438   data &lt;- update$callback_query$data    # \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u043c \u0438\u043c\u044f \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f, \u043d\u0430\u0436\u0430\u0432\u0448\u0435\u0433\u043e \u043a\u043d\u043e\u043f\u043a\u0443   uname &lt;- update$effective_user()$first_name    # \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0430 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0430   if ( data == 'no' ) {      msg &lt;- paste0(uname, &quot;, \u043f\u043e\u0437\u0434\u0440\u0430\u0432\u043b\u044f\u044e, \u0432\u0430\u0448 \u0442\u0435\u0441\u0442 \u043d\u0430 covid-19 \u043e\u0442\u0440\u0438\u0446\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0439.&quot;)    } else {      msg &lt;- paste0(uname, &quot;, \u043a \u0441\u043e\u0436\u0430\u043b\u0435\u043d\u0438 \u0432\u0430\u0448 \u0442\u0435\u0441\u0442 \u043d\u0430 covid-19 \u043f\u043e\u043b\u043e\u0436\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0439.&quot;)    }    # \u041e\u0442\u043f\u0440\u0430\u0432\u043a\u0430 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f   bot$sendMessage(chat_id = update$from_chat_id(),                   text = msg)    # \u0441\u043e\u043e\u0431\u0449\u0430\u0435\u043c \u0431\u043e\u0442\u0443, \u0447\u0442\u043e \u0437\u0430\u043f\u0440\u043e\u0441 \u0441 \u043a\u043d\u043e\u043f\u043a\u0438 \u043f\u0440\u0438\u043d\u044f\u0442   bot$answerCallbackQuery(callback_query_id = update$callback_query$id)  }  # \u0441\u043e\u0437\u0434\u0430\u0451\u043c \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0438 inline_h      &lt;- CommandHandler('test', test) query_handler &lt;- CallbackQueryHandler(answer_cb)  # \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0438 \u0432 \u0434\u0438\u0441\u043f\u0435\u0442\u0447\u0435\u0440 updater &lt;- updater + inline_h + query_handler  # \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u043c \u0431\u043e\u0442\u0430 updater$start_polling()<\/code><\/pre>\n<\/div><\/div>\n<p>  <\/p>\n<blockquote><p>\u0417\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u0435 \u043f\u0440\u0438\u0432\u0435\u0434\u0451\u043d\u043d\u044b\u0439 \u0432\u044b\u0448\u0435 \u043f\u0440\u0438\u043c\u0435\u0440 \u043a\u043e\u0434\u0430, \u043f\u0440\u0435\u0434\u0432\u0430\u0440\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0437\u0430\u043c\u0435\u043d\u0438\u0432 &#8216;\u0422\u041e\u041a\u0415\u041d \u0412\u0410\u0428\u0415\u0413\u041e \u0411\u041e\u0422\u0410&#8217; \u043d\u0430 \u0440\u0435\u0430\u043b\u044c\u043d\u044b\u0439 \u0442\u043e\u043a\u0435\u043d, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0432\u044b \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u0438 \u043f\u0440\u0438 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0438 \u0431\u043e\u0442\u0430 \u0447\u0435\u0440\u0435\u0437 <em>BotFather<\/em> (\u043e \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0438 \u0431\u043e\u0442\u0430 \u044f \u0440\u0430\u0441\u0441\u043a\u0430\u0437\u044b\u0432\u0430\u043b \u0432 <a href=\"https:\/\/habr.com\/ru\/post\/511222\/#sozdanie-telegram-bota\">\u043f\u0435\u0440\u0432\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435<\/a>).<\/p><\/blockquote>\n<p>\u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442:<br \/>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/post_images\/a8a\/746\/45a\/a8a74645a7c488653e6d4789f777c05c.png\"><\/p>\n<p>  <\/p>\n<p>\u041c\u044b \u0441\u043e\u0437\u0434\u0430\u043b\u0438 \u0434\u0432\u0430 \u043c\u0435\u0442\u043e\u0434\u0430:<\/p>\n<p>  <\/p>\n<ul>\n<li><em>test<\/em> \u2014 \u0414\u043b\u044f \u043e\u0442\u043f\u0440\u0430\u0432\u043a\u0438 \u0432 \u0447\u0430\u0442 Inline \u043a\u043b\u0430\u0432\u0438\u0430\u0442\u0443\u0440\u044b<\/li>\n<li><em>answer_cb<\/em> \u2014 \u0414\u043b\u044f \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u043d\u044b\u0445 \u0441 \u043a\u043b\u0430\u0432\u0438\u0430\u0442\u0443\u0440\u044b \u0434\u0430\u043d\u043d\u044b\u0445.<\/li>\n<\/ul>\n<p>  <\/p>\n<p>\u0414\u0430\u043d\u043d\u044b\u0435, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0431\u0443\u0434\u0443\u0442 \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u044b \u0441 \u043a\u0430\u0436\u0434\u043e\u0439 \u043a\u043d\u043e\u043f\u043a\u0438 \u0437\u0430\u0434\u0430\u044e\u0442\u0441\u044f \u0432 \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u0435 <code>callback_data<\/code>, \u043f\u0440\u0438 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0438 \u043a\u043d\u043e\u043f\u043a\u0438. \u041f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u043d\u044b\u0435 \u0441 \u043a\u043d\u043e\u043f\u043a\u0438 \u0434\u0430\u043d\u043d\u044b\u0435 \u043c\u043e\u0436\u043d\u043e \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043a\u043e\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0438 <code>update$callback_query$data<\/code>, \u0432\u043d\u0443\u0442\u0440\u0438 \u043c\u0435\u0442\u043e\u0434\u0430 <em>answer_cb<\/em>.<\/p>\n<p>  <\/p>\n<p>\u0427\u0442\u043e \u0431\u044b \u0431\u043e\u0442 \u0440\u0435\u0430\u0433\u0438\u0440\u043e\u0432\u0430\u043b \u043d\u0430 Inline \u043a\u043b\u0430\u0432\u0438\u0430\u0442\u0443\u0440\u0443, \u043c\u0435\u0442\u043e\u0434 <em>answer_cb<\/em> \u043e\u0431\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u044b\u043c \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u043e\u043c: <code>CallbackQueryHandler(answer_cb)<\/code>. \u041a\u043e\u0442\u043e\u0440\u044b\u0439 \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u0442 \u0443\u043a\u0430\u0437\u0430\u043d\u043d\u044b\u0439 \u043c\u0435\u0442\u043e\u0434 \u043f\u043e \u043d\u0430\u0436\u0430\u0442\u0438\u044e Inline \u043a\u043d\u043e\u043f\u043a\u0438. \u041e\u0431\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a <strong>CallbackQueryHandler<\/strong> \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0435\u0442 \u0434\u0432\u0430 \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u0430:<\/p>\n<p>  <\/p>\n<ul>\n<li><code>callback<\/code> \u2014 \u041c\u0435\u0442\u043e\u0434 \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c<\/li>\n<li><code>pattern<\/code> \u2014 \u0424\u0438\u043b\u044c\u0442\u0440 \u043f\u043e \u0434\u0430\u043d\u043d\u044b\u043c, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043f\u0440\u0438\u0432\u044f\u0437\u0430\u043d\u044b \u043a \u043a\u043d\u043e\u043f\u043a\u0435 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u0430 <code>callback_data<\/code>. <\/li>\n<\/ul>\n<p>  <\/p>\n<p>\u0421\u043e\u043e\u0442\u0432\u0435\u0442\u0432\u0435\u043d\u043d\u043e \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u0430 <code>pattern<\/code> \u043c\u044b \u043c\u043e\u0436\u0435\u043c \u043f\u043e\u0434 \u043d\u0430\u0436\u0430\u0442\u0438\u0435 \u043a\u0430\u0436\u0434\u043e\u0439 \u043a\u043d\u043e\u043f\u043a\u0438 \u043d\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0439 \u043c\u0435\u0442\u043e\u0434:<\/p>\n<p>  <\/p>\n<div class=\"spoiler\" role=\"button\" tabindex=\"0\">                         <b class=\"spoiler_title\">\u041a\u043e\u0434 3: \u0420\u0430\u0437\u0434\u0435\u043b\u044f\u0435\u043c \u043c\u0435\u0442\u043e\u0434\u044b \u043f\u043e\u0434 \u043a\u0430\u0436\u0434\u0443\u044e Inline \u043a\u043d\u043e\u043f\u043a\u0443<\/b>                         <\/p>\n<div class=\"spoiler_text\">\n<pre><code class=\"r\">library(telegram.bot)  # \u0441\u043e\u0437\u0434\u0430\u0451\u043c \u044d\u043a\u0437\u0435\u043c\u043f\u043b\u044f\u0440 \u043a\u043b\u0430\u0441\u0441\u0430 Updater updater &lt;- Updater('\u0422\u041e\u041a\u0415\u041d \u0412\u0410\u0428\u0415\u0413\u041e \u0411\u041e\u0422\u0410')  # \u043c\u0435\u0442\u043e\u0434 \u0434\u043b\u044f \u043e\u0442\u043f\u0440\u0430\u0432\u043a\u0438 InLine \u043a\u043b\u0430\u0432\u0438\u0430\u0442\u0443\u0440\u044b test &lt;- function(bot, update) {      # \u0441\u043e\u0437\u0434\u0430\u0451\u043c InLine \u043a\u043b\u0430\u0432\u0438\u0430\u0442\u0443\u0440\u0443   IKM &lt;- InlineKeyboardMarkup(     inline_keyboard = list(       list(         InlineKeyboardButton(&quot;\u0414\u0430&quot;, callback_data = 'yes'),         InlineKeyboardButton(&quot;\u041d\u0435\u0442&quot;, callback_data = 'no')       )     )   )    # \u041e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u043c \u043a\u043b\u0430\u0432\u0438\u0430\u0442\u0443\u0440\u0443 \u0432 \u0447\u0430\u0442   bot$sendMessage(update$message$chat_id,                    text = &quot;\u0412\u044b \u0431\u043e\u043b\u0435\u0442\u0435 \u043a\u043e\u0440\u043e\u043d\u0430\u0432\u0438\u0440\u0443\u0441\u043e\u043c?&quot;,                    reply_markup = IKM) }  # \u043c\u0435\u0442\u043e\u0434 \u0434\u043b\u044f \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u043d\u0430\u0436\u0430\u0442\u0438\u044f \u043a\u043d\u043e\u043f\u043a\u0438 \u0414\u0430 answer_cb_yes &lt;- function(bot, update) {    # \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u043c \u0438\u043c\u044f \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f, \u043d\u0430\u0436\u0430\u0432\u0448\u0435\u0433\u043e \u043a\u043d\u043e\u043f\u043a\u0443   uname &lt;- update$effective_user()$first_name    # \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0430 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0430   msg &lt;- paste0(uname, &quot;, \u043a \u0441\u043e\u0436\u0430\u043b\u0435\u043d\u0438 \u0432\u0430\u0448 \u0442\u0435\u043a\u0441\u0442 \u043d\u0430 covid-19 \u043f\u043e\u043b\u043e\u0436\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0439.&quot;)    # \u041e\u0442\u043f\u0440\u0430\u0432\u043a\u0430 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f   bot$sendMessage(chat_id = update$from_chat_id(),                   text = msg)    # \u0441\u043e\u043e\u0431\u0449\u0430\u0435\u043c \u0431\u043e\u0442\u0443, \u0447\u0442\u043e \u0437\u0430\u043f\u0440\u043e\u0441 \u0441 \u043a\u043d\u043e\u043f\u043a\u0438 \u043f\u0440\u0438\u043d\u044f\u0442   bot$answerCallbackQuery(callback_query_id = update$callback_query$id)  }  # \u043c\u0435\u0442\u043e\u0434 \u0434\u043b\u044f \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u043d\u0430\u0436\u0430\u0442\u0438\u044f \u043a\u043d\u043e\u043f\u043a\u0438 \u041d\u0435\u0442 answer_cb_no &lt;- function(bot, update) {    # \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u043c \u0438\u043c\u044f \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f, \u043d\u0430\u0436\u0430\u0432\u0448\u0435\u0433\u043e \u043a\u043d\u043e\u043f\u043a\u0443   uname &lt;- update$effective_user()$first_name    msg &lt;- paste0(uname, &quot;, \u043f\u043e\u0437\u0434\u0440\u0430\u0432\u043b\u044f\u044e, \u0432\u0430\u0448 \u0442\u0435\u043a\u0441\u0442 \u043d\u0430 covid-19 \u043e\u0442\u0440\u0438\u0446\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0439.&quot;)    # \u041e\u0442\u043f\u0440\u0430\u0432\u043a\u0430 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f   bot$sendMessage(chat_id = update$from_chat_id(),                   text = msg)    # \u0441\u043e\u043e\u0431\u0449\u0430\u0435\u043c \u0431\u043e\u0442\u0443, \u0447\u0442\u043e \u0437\u0430\u043f\u0440\u043e\u0441 \u0441 \u043a\u043d\u043e\u043f\u043a\u0438 \u043f\u0440\u0438\u043d\u044f\u0442   bot$answerCallbackQuery(callback_query_id = update$callback_query$id)  }  # \u0441\u043e\u0437\u0434\u0430\u0451\u043c \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0438 inline_h          &lt;- CommandHandler('test', test) query_handler_yes &lt;- CallbackQueryHandler(answer_cb_yes, pattern = 'yes') query_handler_no  &lt;- CallbackQueryHandler(answer_cb_no, pattern = 'no')  # \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0438 \u0432 \u0434\u0438\u0441\u043f\u0435\u0442\u0447\u0435\u0440 updater &lt;- updater +              inline_h +              query_handler_yes +             query_handler_no  # \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u043c \u0431\u043e\u0442\u0430 updater$start_polling()<\/code><\/pre>\n<\/div><\/div>\n<p>  <\/p>\n<blockquote><p>\u0417\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u0435 \u043f\u0440\u0438\u0432\u0435\u0434\u0451\u043d\u043d\u044b\u0439 \u0432\u044b\u0448\u0435 \u043f\u0440\u0438\u043c\u0435\u0440 \u043a\u043e\u0434\u0430, \u043f\u0440\u0435\u0434\u0432\u0430\u0440\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0437\u0430\u043c\u0435\u043d\u0438\u0432 &#8216;\u0422\u041e\u041a\u0415\u041d \u0412\u0410\u0428\u0415\u0413\u041e \u0411\u041e\u0422\u0410&#8217; \u043d\u0430 \u0440\u0435\u0430\u043b\u044c\u043d\u044b\u0439 \u0442\u043e\u043a\u0435\u043d, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0432\u044b \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u0438 \u043f\u0440\u0438 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0438 \u0431\u043e\u0442\u0430 \u0447\u0435\u0440\u0435\u0437 <em>BotFather<\/em> (\u043e \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0438 \u0431\u043e\u0442\u0430 \u044f \u0440\u0430\u0441\u0441\u043a\u0430\u0437\u044b\u0432\u0430\u043b \u0432 <a href=\"https:\/\/habr.com\/ru\/post\/511222\/#sozdanie-telegram-bota\">\u043f\u0435\u0440\u0432\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435<\/a>).<\/p><\/blockquote>\n<p>\u0422\u0435\u043f\u0435\u0440\u044c \u043c\u044b \u043d\u0430\u043f\u0438\u0441\u0430\u043b\u0438 2 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0445 \u043c\u0435\u0442\u043e\u0434\u0430, \u0442.\u0435. \u043f\u043e \u043e\u0434\u043d\u043e\u043c\u0443 \u043c\u0435\u0442\u043e\u0434\u0443, \u043f\u043e\u0434 \u043d\u0430\u0436\u0430\u0442\u0438\u0435 \u043a\u0430\u0436\u0434\u043e\u0439 \u043a\u043d\u043e\u043f\u043a\u0438, \u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043b\u0438 \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442 <code>pattern<\/code>, \u043f\u0440\u0438 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0438 \u0438\u0445 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u043e\u0432:<\/p>\n<p>  <\/p>\n<pre><code class=\"r\">query_handler_yes &lt;- CallbackQueryHandler(answer_cb_yes, pattern = 'yes') query_handler_no  &lt;- CallbackQueryHandler(answer_cb_no, pattern = 'no')<\/code><\/pre>\n<p>  <\/p>\n<p>\u0417\u0430\u043a\u0430\u043d\u0447\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u043a\u043e\u0434 \u043c\u0435\u0442\u043e\u0434\u0430 <em>answer_cb<\/em> \u043a\u043e\u043c\u0430\u043d\u0434\u043e\u0439 <code>bot$answerCallbackQuery(callback_query_id = update$callback_query$id)<\/code>, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0441\u043e\u043e\u0431\u0449\u0430\u0435\u0442 \u0431\u043e\u0442\u0443, \u0447\u0442\u043e \u0434\u0430\u043d\u043d\u044b\u0435 \u0441 inline \u043a\u043b\u0430\u0432\u0438\u0430\u0442\u0443\u0440\u044b \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u044b.<\/p>\n<p>  <\/p>\n<h3 id=\"primer-bota-kotoryy-soobschaet-tekuschuyu-pogodu-po-vybrannomu-gorodu\">\u041f\u0440\u0438\u043c\u0435\u0440 \u0431\u043e\u0442\u0430, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0441\u043e\u043e\u0431\u0449\u0430\u0435\u0442 \u0442\u0435\u043a\u0443\u0449\u0443\u044e \u043f\u043e\u0433\u043e\u0434\u0443 \u043f\u043e \u0432\u044b\u0431\u0440\u0430\u043d\u043d\u043e\u043c\u0443 \u0433\u043e\u0440\u043e\u0434\u0443<\/h3>\n<p>  <\/p>\n<p>\u0414\u0430\u0432\u0430\u0439\u0442\u0435 \u043f\u043e\u043f\u0440\u043e\u0431\u0443\u0435\u043c \u043d\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u0431\u043e\u0442\u0430, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0437\u0430\u043f\u0440\u0430\u0448\u0438\u0432\u0430\u0435\u0442 \u0434\u0430\u043d\u043d\u044b\u0435 \u043e \u043f\u043e\u0433\u043e\u0434\u0435. <\/p>\n<p>  <\/p>\n<p>\u041b\u043e\u0433\u0438\u043a\u0430 \u0435\u0433\u043e \u0440\u0430\u0431\u043e\u0442\u044b \u0431\u0443\u0434\u0435\u0442 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0430\u044f. \u0418\u0437\u043d\u0430\u0447\u0430\u043b\u044c\u043d\u043e \u043a\u043e\u043c\u0430\u043d\u0434\u043e\u0439 <code>\/start<\/code> \u0432\u044b \u0432\u044b\u0437\u044b\u0432\u0430\u0435\u0442\u0435 \u043e\u0441\u043d\u043e\u0432\u043d\u0443\u044e \u043a\u043b\u0430\u0432\u0438\u0430\u0442\u0443\u0440\u0443, \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u043f\u0440\u0438\u0441\u0443\u0442\u0441\u0442\u0432\u0443\u0435\u0442 \u0432\u0441\u0435\u0433\u043e \u043e\u0434\u043d\u0430 \u043a\u043d\u043e\u043f\u043a\u0430 &quot;\u041f\u043e\u0433\u043e\u0434\u0430&quot;. \u041d\u0430\u0436\u0430\u0432 \u043d\u0430 \u044d\u0442\u0443 \u043a\u043d\u043e\u043f\u043a\u0443 \u0432\u044b \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u0442\u0435 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0435 \u0441 Inline \u043a\u043b\u0430\u0432\u0438\u0430\u0442\u0443\u0440\u043e\u0439, \u0434\u043b\u044f \u0432\u044b\u0431\u043e\u0440\u0430 \u0433\u043e\u0440\u043e\u0434\u0430, \u043f\u043e \u043a\u043e\u0442\u043e\u0440\u043e\u043c\u0443 \u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f \u0443\u0437\u043d\u0430\u0442\u044c \u0442\u0435\u043a\u0443\u0449\u0443\u044e \u043f\u043e\u0433\u043e\u0434\u0443. \u0412\u044b\u0431\u0438\u0440\u0430\u0435\u0442\u0435 \u043e\u0434\u0438\u043d \u0438\u0437 \u0433\u043e\u0440\u043e\u0434\u043e\u0432, \u0438 \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u0442\u0435 \u0442\u0435\u043a\u0443\u0449\u0443\u044e \u043f\u043e\u0433\u043e\u0434\u0443.<\/p>\n<p>  <\/p>\n<p>\u0412 \u044d\u0442\u043e\u043c \u043f\u0440\u0438\u043c\u0435\u0440\u0435 \u043a\u043e\u0434\u0430 \u043c\u044b \u0431\u0443\u0434\u0435\u043c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0445 \u043f\u0430\u043a\u0435\u0442\u043e\u0432:<\/p>\n<p>  <\/p>\n<ul>\n<li><code>httr<\/code> \u2014 \u043f\u0430\u043a\u0435\u0442 \u0434\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u0441 HTTP \u0437\u0430\u043f\u0440\u043e\u0441\u0430\u043c\u0438, \u043d\u0430 \u043e\u0441\u043d\u043e\u0432\u0435 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u043f\u043e\u0441\u0442\u0440\u043e\u0435\u043d\u0430 \u0440\u0430\u0431\u043e\u0442\u0430 \u0441 \u043b\u044e\u0431\u044b\u043c API. \u0412 \u043d\u0430\u0448\u0435\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u043c\u044b \u0431\u0443\u0434\u0435\u043c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0431\u0435\u0441\u043f\u043b\u0430\u0442\u043d\u044b\u0439 API <a href=\"https:\/\/openweathermap.org\/api\" rel=\"nofollow\">openweathermap.org<\/a>.<\/li>\n<li><code>stringr<\/code> \u2014 \u043f\u0430\u043a\u0435\u0442 \u0434\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u0441 \u0442\u0435\u043a\u0441\u0442\u043e\u043c, \u0432 \u043d\u0430\u0448\u0435\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u043c\u044b \u0431\u0443\u0434\u0435\u043c \u0435\u0433\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0434\u043b\u044f \u0444\u043e\u0440\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f \u043e \u043f\u043e\u0433\u043e\u0434\u0435 \u0432 \u0432\u044b\u0431\u0440\u0430\u043d\u043d\u043e\u043c \u0433\u043e\u0440\u043e\u0434\u0435.<\/li>\n<\/ul>\n<p>  <\/p>\n<div class=\"spoiler\" role=\"button\" tabindex=\"0\">                         <b class=\"spoiler_title\">\u041a\u043e\u0434 4: \u0411\u043e\u0442, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0441\u043e\u043e\u0431\u0449\u0430\u0435\u0442 \u0442\u0435\u043a\u0443\u0449\u0443\u044e \u043f\u043e\u0433\u043e\u0434\u0443 \u043f\u043e \u0432\u044b\u0431\u0440\u0430\u043d\u043d\u043e\u043c\u0443 \u0433\u043e\u0440\u043e\u0434\u0443<\/b>                         <\/p>\n<div class=\"spoiler_text\">\n<pre><code class=\"r\">library(telegram.bot) library(httr) library(stringr)  # \u0441\u043e\u0437\u0434\u0430\u0451\u043c \u044d\u043a\u0437\u0435\u043c\u043f\u043b\u044f\u0440 \u043a\u043b\u0430\u0441\u0441\u0430 Updater updater &lt;- Updater('\u0422\u041e\u041a\u0415\u041d \u0412\u0410\u0428\u0415\u0413\u041e \u0411\u041e\u0422\u0410')  # \u0441\u043e\u0437\u0434\u0430\u0451\u043c \u043c\u0435\u0442\u043e\u0434\u044b ## \u043c\u0435\u0442\u043e\u0434 \u0434\u043b\u044f \u0437\u0430\u043f\u0443\u0441\u043a\u0430 \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u0439 \u043a\u043b\u0430\u0432\u0438\u0430\u0442\u0443\u0440\u044b start &lt;- function(bot, update) {    # \u0441\u043e\u0437\u0434\u0430\u0451\u043c \u043a\u043b\u0430\u0432\u0438\u0430\u0442\u0443\u0440\u0443   RKM &lt;- ReplyKeyboardMarkup(     keyboard = list(       list(         KeyboardButton(&quot;\u041f\u043e\u0433\u043e\u0434\u0430&quot;)       )     ),     resize_keyboard = TRUE,     one_time_keyboard = TRUE   )    # \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u043c \u043a\u043b\u0430\u0432\u0438\u0430\u0442\u0443\u0440\u0443   bot$sendMessage(update$message$chat_id,                   text = '\u0412\u044b\u0431\u0435\u0440\u0438\u0442\u0435 \u043a\u043e\u043c\u0430\u043d\u0434\u0443',                    reply_markup = RKM)  }  ## \u041c\u0435\u0442\u043e\u0434 \u0432\u044b\u0437\u043e\u0432\u0430 Inine \u043a\u043b\u0430\u0432\u0438\u0430\u0442\u0443\u0440\u044b weather &lt;- function(bot, update) {    IKM &lt;- InlineKeyboardMarkup(     inline_keyboard = list(       list(         InlineKeyboardButton(text = '\u041c\u043e\u0441\u043a\u0432\u0430', callback_data = 'New York,us'),         InlineKeyboardButton(text = '\u0421\u0430\u043d\u043a\u0442-\u041f\u0435\u0442\u0435\u0440\u0431\u0443\u0440\u0433', callback_data = 'Saint Petersburg'),         InlineKeyboardButton(text = '\u041d\u044c\u044e-\u0419\u043e\u0440\u043a', callback_data = 'New York')       ),       list(         InlineKeyboardButton(text = '\u0415\u043a\u0430\u0442\u0435\u0440\u0438\u043d\u0431\u0443\u0440\u0433', callback_data = 'Yekaterinburg,ru'),         InlineKeyboardButton(text = '\u0411\u0435\u0440\u043b\u0438\u043d', callback_data = 'Berlin,de'),         InlineKeyboardButton(text = '\u041f\u0430\u0440\u0438\u0436', callback_data = 'Paris,fr')       ),       list(         InlineKeyboardButton(text = '\u0420\u0438\u043c', callback_data = 'Rome,it'),         InlineKeyboardButton(text = '\u041e\u0434\u0435\u0441\u0441\u0430', callback_data = 'Odessa,ua'),         InlineKeyboardButton(text = '\u041a\u0438\u0435\u0432', callback_data = 'Kyiv,fr')       ),       list(         InlineKeyboardButton(text = '\u0422\u043e\u043a\u0438\u043e', callback_data = 'Tokyo'),         InlineKeyboardButton(text = '\u0410\u043c\u0441\u0442\u0435\u0440\u0434\u0430\u043c', callback_data = 'Amsterdam,nl'),         InlineKeyboardButton(text = '\u0412\u0430\u0448\u0438\u043d\u0433\u0442\u043e\u043d', callback_data = 'Washington,us')       )     )   )    # Send Inline Keyboard   bot$sendMessage(chat_id = update$message$chat_id,                    text = &quot;\u0412\u044b\u0431\u0435\u0440\u0438\u0442\u0435 \u0433\u043e\u0440\u043e\u0434&quot;,                    reply_markup = IKM) }  # \u043c\u0435\u0442\u043e\u0434 \u0434\u043b\u044f \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f \u043f\u043e\u0433\u043e\u0434\u044b answer_cb &lt;- function(bot, update) {    # \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u043c \u0438\u0437 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f \u0433\u043e\u0440\u043e\u0434   city &lt;- update$callback_query$data    # \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u043c \u0437\u0430\u043f\u0440\u043e\u0441   ans &lt;- GET('https:\/\/api.openweathermap.org\/data\/2.5\/weather',               query = list(q     = city,                           lang  = 'ru',                           units = 'metric',                           appid = '4776568ccea136ffe4cda9f1969af340'))     # \u043f\u0430\u0440\u0441\u0438\u043c \u043e\u0442\u0432\u0435\u0442   result &lt;- content(ans)    # \u0444\u043e\u0440\u043c\u0438\u0440\u0443\u0435\u043c \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0435   msg &lt;- str_glue(&quot;{result$name} \u043f\u043e\u0433\u043e\u0434\u0430:\\n&quot;,                   &quot;\u0422\u0435\u043a\u0443\u0449\u0430\u044f \u0442\u0435\u043c\u043f\u0435\u0440\u0430\u0442\u0443\u0440\u0430: {result$main$temp}\\n&quot;,                   &quot;\u0421\u043a\u043e\u0440\u043e\u0441\u0442\u044c \u0432\u0435\u0442\u0440\u0430: {result$wind$speed}\\n&quot;,                   &quot;\u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435: {result$weather[[1]]$description}&quot;)    # \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u043c \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e \u043e \u043f\u043e\u0433\u043e\u0434\u0435   bot$sendMessage(chat_id = update$from_chat_id(),                   text    = msg)    bot$answerCallbackQuery(callback_query_id = update$callback_query$id)  }  # \u0441\u043e\u0437\u0434\u0430\u0451\u043c \u0444\u0438\u043b\u044c\u0442\u0440\u044b ## \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f \u0441 \u0442\u0435\u043a\u0441\u0442\u043e\u043c \u041f\u043e\u0433\u043e\u0434\u0430 MessageFilters$weather &lt;- BaseFilter(function(message) {    # \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u043c \u0442\u0435\u043a\u0441\u0442 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f   message$text == &quot;\u041f\u043e\u0433\u043e\u0434\u0430&quot;  } )  # \u0441\u043e\u0437\u0434\u0430\u0451\u043c \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0438 h_start         &lt;- CommandHandler('start', start) h_weather       &lt;- MessageHandler(weather, filters = MessageFilters$weather) h_query_handler &lt;- CallbackQueryHandler(answer_cb)  # \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0438 \u0432 \u0434\u0438\u0441\u043f\u0435\u0442\u0447\u0435\u0440 updater &lt;- updater +                h_start +               h_weather +               h_query_handler  # \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u043c \u0431\u043e\u0442\u0430 updater$start_polling()<\/code><\/pre>\n<\/div><\/div>\n<p>  <\/p>\n<blockquote><p>\u0417\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u0435 \u043f\u0440\u0438\u0432\u0435\u0434\u0451\u043d\u043d\u044b\u0439 \u0432\u044b\u0448\u0435 \u043f\u0440\u0438\u043c\u0435\u0440 \u043a\u043e\u0434\u0430, \u043f\u0440\u0435\u0434\u0432\u0430\u0440\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0437\u0430\u043c\u0435\u043d\u0438\u0432 &#8216;\u0422\u041e\u041a\u0415\u041d \u0412\u0410\u0428\u0415\u0413\u041e \u0411\u041e\u0422\u0410&#8217; \u043d\u0430 \u0440\u0435\u0430\u043b\u044c\u043d\u044b\u0439 \u0442\u043e\u043a\u0435\u043d, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0432\u044b \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u0438 \u043f\u0440\u0438 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0438 \u0431\u043e\u0442\u0430 \u0447\u0435\u0440\u0435\u0437 <em>BotFather<\/em> (\u043e \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0438 \u0431\u043e\u0442\u0430 \u044f \u0440\u0430\u0441\u0441\u043a\u0430\u0437\u044b\u0432\u0430\u043b \u0432 <a href=\"https:\/\/habr.com\/ru\/post\/511222\/#sozdanie-telegram-bota\">\u043f\u0435\u0440\u0432\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435<\/a>).<\/p><\/blockquote>\n<p>\u0412 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0435 \u043d\u0430\u0448 \u0431\u043e\u0442 \u0431\u0443\u0434\u0435\u0442 \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u043f\u0440\u0438\u043c\u0435\u0440\u043d\u043e \u0442\u0430\u043a:<br \/>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/post_images\/9de\/4a8\/3c4\/9de4a83c4b32f75ecb79e5231d825421.png\"><\/p>\n<p>  <\/p>\n<p>\u0421\u0445\u0435\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u0434\u0430\u043d\u043d\u043e\u0433\u043e \u0431\u043e\u0442\u0430 \u043c\u043e\u0436\u043d\u043e \u0438\u0437\u043e\u0431\u0440\u0430\u0442\u044c \u0432\u043e\u0442 \u0442\u0430\u043a:<br \/>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/post_images\/757\/ad9\/c8a\/757ad9c8af794eb971e8ad9b94f844ac.png\"><\/p>\n<p>  <\/p>\n<p>\u041c\u044b \u0441\u043e\u0437\u0434\u0430\u043b\u0438 3 \u043c\u0435\u0442\u043e\u0434\u0430, \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b\u0435 \u0432\u043d\u0443\u0442\u0440\u0438 \u043d\u0430\u0448\u0435\u0433\u043e \u043f\u043e\u0433\u043e\u0434\u043d\u043e\u0433\u043e \u0431\u043e\u0442\u0430:<\/p>\n<p>  <\/p>\n<ul>\n<li><em>start<\/em> \u2014 \u0417\u0430\u043f\u0443\u0441\u043a \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u0439 \u043a\u043b\u0430\u0432\u0438\u0430\u0442\u0443\u0440\u044b \u0431\u043e\u0442\u0430<\/li>\n<li><em>weather<\/em> \u2014 \u0417\u0430\u043f\u0443\u0441\u043a Inline \u043a\u043b\u0430\u0432\u0438\u0430\u0442\u0443\u0440\u044b \u0434\u043b\u044f \u0432\u044b\u0431\u043e\u0440\u0430 \u0433\u043e\u0440\u043e\u0434\u0430<\/li>\n<li><em>answer_cb<\/em> \u2014 \u041e\u0441\u043d\u043e\u0432\u043d\u043e\u0439 \u043c\u0435\u0442\u043e\u0434, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043f\u043e \u0437\u0430\u0434\u0430\u043d\u043d\u043e\u043c\u0443 \u0433\u043e\u0440\u043e\u0434\u0443 \u0437\u0430\u043f\u0440\u0430\u0448\u0438\u0432\u0430\u0435\u0442 \u0432 API \u043f\u043e\u0433\u043e\u0434\u0443, \u0438 \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u0442 \u0435\u0451 \u0432 \u0447\u0430\u0442.<\/li>\n<\/ul>\n<p>  <\/p>\n<p>\u041c\u0435\u0442\u043e\u0434 <em>start<\/em> \u0443 \u043d\u0430\u0441 \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u0442\u0441\u044f \u043a\u043e\u043c\u0430\u043d\u0434\u043e\u0439 <code>\/start<\/code>, \u0447\u0442\u043e \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d\u043e \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u043e\u043c <code>CommandHandler('start', start)<\/code>.<\/p>\n<p>  <\/p>\n<p>\u0414\u043b\u044f \u0437\u0430\u043f\u0443\u0441\u043a\u0430 \u043c\u0435\u0442\u043e\u0434\u0430 <em>weather<\/em> \u043c\u044b \u0441\u043e\u0437\u0434\u0430\u043b\u0438 \u043e\u0434\u043d\u043e\u0438\u043c\u0451\u043d\u043d\u044b\u0439 \u0444\u0438\u043b\u044c\u0442\u0440:<\/p>\n<p>  <\/p>\n<pre><code class=\"r\"># \u0441\u043e\u0437\u0434\u0430\u0451\u043c \u0444\u0438\u043b\u044c\u0442\u0440\u044b ## \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f \u0441 \u0442\u0435\u043a\u0441\u0442\u043e\u043c \u041f\u043e\u0433\u043e\u0434\u0430 MessageFilters$weather &lt;- BaseFilter(function(message) {    # \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u043c \u0442\u0435\u043a\u0441\u0442 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f   message$text == &quot;\u041f\u043e\u0433\u043e\u0434\u0430&quot;  } )<\/code><\/pre>\n<p>  <\/p>\n<p>\u0418 \u0432\u044b\u0437\u044b\u0432\u0430\u0435\u043c \u044d\u0442\u043e\u0442 \u043c\u0435\u0442\u043e\u0434 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u043c \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u043e\u043c \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0439: <code>MessageHandler(weather, filters = MessageFilters$weather)<\/code>.<\/p>\n<p>  <\/p>\n<p>\u0418 \u0432 \u043a\u043e\u043d\u0446\u0435 \u043a\u043e\u043d\u0446\u043e\u0432, \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u0439 \u043d\u0430\u0448 \u043c\u0435\u0442\u043e\u0434 <em>answer_cb<\/em> \u0440\u0435\u0430\u0433\u0438\u0440\u0443\u0435\u0442 \u043d\u0430 \u043d\u0430\u0436\u0430\u0442\u0438\u0435 Inline \u043a\u043d\u043e\u043f\u043e\u043a, \u0447\u0442\u043e \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d\u043e \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u044b\u043c \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u043e\u043c: <code>CallbackQueryHandler(answer_cb)<\/code>.<\/p>\n<p>  <\/p>\n<p>\u0412\u043d\u0443\u0442\u0440\u0438 \u043c\u0435\u0442\u043e\u0434\u0430 <em>answer_cb<\/em>, \u043c\u044b \u0441\u0447\u0438\u0442\u044b\u0432\u0430\u0435\u043c \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u043d\u044b\u0435 \u0441 \u043a\u043b\u0430\u0432\u0438\u0430\u0442\u0443\u0440\u044b \u0434\u0430\u043d\u043d\u044b\u0435 \u0438 \u0437\u0430\u043f\u0438\u0441\u044b\u0432\u0430\u0435\u043c \u0438\u0445 \u0432 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0443\u044e <code>city<\/code>: <code>city &lt;- update$callback_query$data<\/code>. \u041f\u043e\u0441\u043b\u0435 \u0447\u0435\u0433\u043e \u0437\u0430\u043f\u0440\u0430\u0448\u0438\u0432\u0430\u0435\u043c \u0438\u0437 API \u0434\u0430\u043d\u043d\u044b\u0435 \u043e \u043f\u043e\u0433\u043e\u0434\u0435, \u0444\u043e\u0440\u043c\u0438\u0440\u0443\u0435\u043c \u0438 \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u043c \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0435, \u0438 \u0432 \u043a\u043e\u043d\u0446\u0435 \u043a\u043e\u043d\u0446\u043e\u0432 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c \u043c\u0435\u0442\u043e\u0434 <code>answerCallbackQuery<\/code> \u0434\u043b\u044f \u0442\u043e\u0433\u043e, \u0447\u0442\u043e \u0431\u044b \u0441\u043e\u043e\u0431\u0449\u0438\u0442\u044c \u0431\u043e\u0442\u0443, \u043e \u0442\u043e\u043c, \u0447\u0442\u043e \u043c\u044b \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u0430\u043b\u0438 \u043d\u0430\u0436\u0430\u0442\u0438\u0435 Inline \u043a\u043d\u043e\u043f\u043a\u0438.<\/p>\n<p>  <\/p>\n<h3 id=\"primer-bota-kotoryy-vyvodit-spisok-samyh-svezhih-statey-so-ssylkami-po-ukazannomu-habu-iz-habrcomhttpshabrcom\">\u041f\u0440\u0438\u043c\u0435\u0440 \u0431\u043e\u0442\u0430, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0432\u044b\u0432\u043e\u0434\u0438\u0442 \u0441\u043f\u0438\u0441\u043e\u043a \u0441\u0430\u043c\u044b\u0445 \u0441\u0432\u0435\u0436\u0438\u0445 \u0441\u0442\u0430\u0442\u0435\u0439 \u0441\u043e \u0441\u0441\u044b\u043b\u043a\u0430\u043c\u0438 \u043f\u043e-\u0443\u043a\u0430\u0437\u0430\u043d\u043d\u043e\u043c\u0443 \u0425\u0430\u0431\u0443 \u0438\u0437 <a href=\"https:\/\/habr.com\/\">habr.com<\/a>.<\/h3>\n<p>  <\/p>\n<p>\u0414\u0430\u043d\u043d\u043e\u0433\u043e \u0431\u043e\u0442\u0430 \u044f \u043f\u0440\u0438\u0432\u043e\u0436\u0443 \u0434\u043b\u044f \u0442\u043e\u0433\u043e, \u0447\u0442\u043e \u0431\u044b \u043f\u043e\u043a\u0430\u0437\u0430\u0442\u044c \u0432\u0430\u043c, \u043a\u0430\u043a \u0432\u044b\u0432\u0435\u0441\u0442\u0438 Inline \u043a\u043d\u043e\u043f\u043a\u0438 \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0432\u0435\u0434\u0443\u0442 \u043d\u0430 \u0432\u0435\u0431 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u044b. <\/p>\n<p>  <\/p>\n<p>\u041b\u043e\u0433\u0438\u043a\u0430 \u0434\u0430\u043d\u043d\u043e\u0433\u043e \u0431\u043e\u0442\u0430 \u0441\u0445\u043e\u0436\u0430 \u0441 \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0438\u043c, \u0438\u0437\u043d\u0430\u0447\u0430\u043b\u044c\u043d\u043e \u043c\u044b \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u043c \u043e\u0441\u043d\u043e\u0432\u043d\u0443\u044e \u043a\u043b\u0430\u0432\u0438\u0430\u0442\u0443\u0440\u0443 \u043a\u043e\u043c\u0430\u043d\u0434\u043e\u0439 <code>\/start<\/code>. \u0414\u0430\u043b\u0435\u0435 \u0431\u043e\u0442 \u0434\u0430\u0451\u0442 \u043d\u0430\u043c \u043d\u0430 \u0432\u044b\u0431\u043e\u0440 \u0441\u043f\u0438\u0441\u043e\u043a \u0438\u0437 6 \u0445\u0430\u0431\u043e\u0432, \u043c\u044b \u0432\u044b\u0431\u0438\u0440\u0430\u0435\u043c \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u0443\u044e\u0449\u0438\u0439 \u043d\u0430\u0441 \u0445\u0430\u0431, \u0438 \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u043c 5 \u0441\u0430\u043c\u044b\u0445 \u0441\u0432\u0435\u0436\u0438\u0445 \u043f\u0443\u0431\u043b\u0438\u043a\u0430\u0446\u0438\u0439 \u0438\u0437 \u0432\u044b\u0431\u0440\u0430\u043d\u043d\u043e\u0433\u043e \u0425\u0430\u0431\u0430.<\/p>\n<p>  <\/p>\n<p>\u041a\u0430\u043a \u0432\u044b \u043f\u043e\u043d\u0438\u043c\u0430\u0435\u0442\u0435, \u0432 \u0434\u0430\u043d\u043d\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u043d\u0430\u043c \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0441\u043f\u0438\u0441\u043e\u043a \u0441\u0442\u0430\u0442\u0435\u0439, \u0438 \u0434\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u043c\u044b \u0431\u0443\u0434\u0435\u043c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u044b\u0439 \u043f\u0430\u043a\u0435\u0442 <code>habR<\/code>, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0437\u0430\u043f\u0440\u0430\u0448\u0438\u0432\u0430\u0442\u044c \u0438\u0437 \u0445\u0430\u0431\u0440\u044b \u0441\u0442\u0430\u0442\u044c\u0438 \u0438 \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u0443\u044e \u0441\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u043a\u0443 \u043f\u043e \u043d\u0438\u043c \u0432 R.<\/p>\n<p>  <\/p>\n<p>\u0423\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u043f\u0430\u043a\u0435\u0442 <code>habR<\/code> \u043c\u043e\u0436\u043d\u043e \u0442\u043e\u043b\u044c\u043a\u043e \u0438\u0437 github, \u0434\u043b\u044f \u0447\u0435\u0433\u043e \u0432\u0430\u043c \u043f\u043e\u043d\u0430\u0434\u043e\u0431\u0438\u0442\u0441\u044f \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0439 \u043f\u0430\u043a\u0435\u0442 <code>devtools<\/code>. \u0414\u043b\u044f \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438 \u0432\u043e\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0439\u0442\u0435\u0441\u044c \u043f\u0440\u0438\u0432\u0435\u0434\u0451\u043d\u043d\u044b\u043c \u043d\u0438\u0436\u0435 \u043a\u043e\u0434\u043e\u043c.<\/p>\n<p>  <\/p>\n<pre><code class=\"r\">install.packages('devtools') devtools::install_github('selesnow\/habR')<\/code><\/pre>\n<p>  <\/p>\n<p>\u0422\u0435\u043f\u0435\u0440\u044c \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u043a\u043e\u0434 \u043f\u043e\u0441\u0442\u0440\u043e\u0435\u043d\u0438\u044f \u043e\u043f\u0438\u0441\u0430\u043d\u043d\u043e\u0433\u043e \u0432\u044b\u0448\u0435 \u0431\u043e\u0442\u0430:<\/p>\n<p>  <\/p>\n<div class=\"spoiler\" role=\"button\" tabindex=\"0\">                         <b class=\"spoiler_title\">\u041a\u043e\u0434 5: \u0411\u043e\u0442 \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0432\u044b\u0432\u043e\u0434\u0438\u0442 \u0441\u043f\u0438\u0441\u043e\u043a \u043d\u0430\u0438\u0431\u043e\u043b\u0435\u0435 \u0441\u0432\u0435\u0436\u0438\u0445 \u0441\u0442\u0430\u0442\u0435\u0439 \u043f\u043e \u0432\u044b\u0431\u0440\u0430\u043d\u043d\u043e\u043c\u0443 \u0425\u0430\u0431\u0443<\/b>                         <\/p>\n<div class=\"spoiler_text\">\n<pre><code class=\"r\">library(telegram.bot) library(habR)  # \u0441\u043e\u0437\u0434\u0430\u0451\u043c \u044d\u043a\u0437\u0435\u043c\u043f\u043b\u044f\u0440 \u043a\u043b\u0430\u0441\u0441\u0430 Updater updater &lt;- Updater('\u0422\u041e\u041a\u0415\u041d \u0412\u0410\u0428\u0415\u0413\u041e \u0411\u041e\u0422\u0410')  # \u0441\u043e\u0437\u0434\u0430\u0451\u043c \u043c\u0435\u0442\u043e\u0434\u044b ## \u043c\u0435\u0442\u043e\u0434 \u0434\u043b\u044f \u0437\u0430\u043f\u0443\u0441\u043a\u0430 \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u0439 \u043a\u043b\u0430\u0432\u0438\u0430\u0442\u0443\u0440\u044b start &lt;- function(bot, update) {    # \u0441\u043e\u0437\u0434\u0430\u0451\u043c \u043a\u043b\u0430\u0432\u0438\u0430\u0442\u0443\u0440\u0443   RKM &lt;- ReplyKeyboardMarkup(     keyboard = list(       list(         KeyboardButton(&quot;\u0421\u043f\u0438\u0441\u043e\u043a \u0441\u0442\u0430\u0442\u0435\u0439&quot;)       )     ),     resize_keyboard = TRUE,     one_time_keyboard = TRUE   )    # \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u043c \u043a\u043b\u0430\u0432\u0438\u0430\u0442\u0443\u0440\u0443   bot$sendMessage(update$message$chat_id,                   text = '\u0412\u044b\u0431\u0435\u0440\u0438\u0442\u0435 \u043a\u043e\u043c\u0430\u043d\u0434\u0443',                    reply_markup = RKM)  }  ## \u041c\u0435\u0442\u043e\u0434 \u0432\u044b\u0437\u043e\u0432\u0430 Inine \u043a\u043b\u0430\u0432\u0438\u0430\u0442\u0443\u0440\u044b habs &lt;- function(bot, update) {    IKM &lt;- InlineKeyboardMarkup(     inline_keyboard = list(       list(         InlineKeyboardButton(text = 'R', callback_data = 'R'),         InlineKeyboardButton(text = 'Data Mining', callback_data = 'data_mining'),         InlineKeyboardButton(text = 'Data Engineering', callback_data = 'data_engineering')       ),       list(         InlineKeyboardButton(text = 'Big Data', callback_data = 'bigdata'),         InlineKeyboardButton(text = 'Python', callback_data = 'python'),         InlineKeyboardButton(text = '\u0412\u0438\u0437\u0443\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u0434\u0430\u043d\u043d\u044b\u0445', callback_data = 'data_visualization')       )     )   )    # Send Inline Keyboard   bot$sendMessage(chat_id = update$message$chat_id,                    text = &quot;\u0412\u044b\u0431\u0435\u0440\u0438\u0442\u0435 \u0425\u0430\u0431&quot;,                    reply_markup = IKM) }  # \u043c\u0435\u0442\u043e\u0434 \u0434\u043b\u044f \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f \u043f\u043e\u0433\u043e\u0434\u044b answer_cb &lt;- function(bot, update) {    # \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u043c \u0438\u0437 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f \u0433\u043e\u0440\u043e\u0434   hub &lt;- update$callback_query$data    # \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0435 \u043e \u0442\u043e\u043c, \u0447\u0442\u043e \u0434\u0430\u043d\u043d\u044b\u0435 \u043f\u043e \u043a\u043d\u043e\u043f\u043a\u0435 \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u044b   bot$answerCallbackQuery(callback_query_id = update$callback_query$id,                            text = '\u041f\u043e\u0434\u043e\u0436\u0434\u0438\u0442\u0435 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043c\u0438\u043d\u0443\u0442, \u0437\u0430\u043f\u0440\u043e\u0441 \u043e\u0431\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u0435\u0442\u0441\u044f')     # \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0435 \u043e \u0442\u043e\u043c, \u0447\u0442\u043e \u043d\u0430\u0434\u043e \u043f\u043e\u0434\u043e\u0436\u0434\u0430\u0442\u044c \u043f\u043e\u043a\u0430 \u0431\u043e\u0442 \u043f\u043e\u043b\u0443\u0447\u0438\u0442 \u0434\u0430\u043d\u043d\u044b\u0435   mid &lt;- bot$sendMessage(chat_id = update$from_chat_id(),                          text    = &quot;\u041f\u043e\u0434\u043e\u0436\u0434\u0438\u0442\u0435 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043c\u0438\u043d\u0443\u0442 \u043f\u043e\u043a\u0430, \u044f \u0441\u043e\u0431\u0435\u0440\u0443 \u0434\u0430\u043d\u043d\u044b\u0435 \u043f\u043e \u0432\u044b\u0431\u0440\u0430\u043d\u043d\u043e\u043c\u0443 \u0425\u0430\u0431\u0443&quot;)    # \u043f\u0430\u0440\u0441\u0438\u043c \u0425\u0430\u0431\u0440   posts &lt;- head(habr_hub_posts(hub, 1), 5)    # \u0443\u0434\u0430\u043b\u044f\u0435\u043c \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0435 \u043e \u0442\u043e\u043c, \u0447\u0442\u043e \u043d\u0430\u0434\u043e \u043f\u043e\u0434\u043e\u0436\u0434\u0430\u0442\u044c   bot$deleteMessage(update$from_chat_id(), mid$message_id)     # \u0444\u043e\u0440\u043c\u0438\u0440\u0443\u0435\u043c \u0441\u043f\u0438\u0441\u043e\u043a \u043a\u043d\u043e\u043f\u043e\u043a   keys &lt;- lapply(1:5, function(x) list(InlineKeyboardButton(posts$title[x], url = posts$link[x])))    # \u0444\u043e\u0440\u043c\u0438\u0440\u0443\u0435\u043c \u043a\u043b\u0430\u0432\u0438\u0430\u0442\u0443\u0440\u0443   IKM &lt;- InlineKeyboardMarkup(     inline_keyboard =  keys      )    # \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u043c \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e \u043e \u043f\u043e\u0433\u043e\u0434\u0435   bot$sendMessage(chat_id = update$from_chat_id(),                   text    = paste0(&quot;5 \u043d\u0430\u0438\u0431\u043e\u043b\u0435\u0435 \u0441\u0432\u0435\u0436\u0438\u0445 \u0441\u0442\u0430\u0442\u0435\u0439 \u0438\u0437 \u0425\u0430\u0431\u0430 &quot;, hub),                   reply_markup = IKM)  }  # \u0441\u043e\u0437\u0434\u0430\u0451\u043c \u0444\u0438\u043b\u044c\u0442\u0440\u044b ## \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f \u0441 \u0442\u0435\u043a\u0441\u0442\u043e\u043c \u041f\u043e\u0433\u043e\u0434\u0430 MessageFilters$hubs &lt;- BaseFilter(function(message) {    # \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u043c \u0442\u0435\u043a\u0441\u0442 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f   message$text == &quot;\u0421\u043f\u0438\u0441\u043e\u043a \u0441\u0442\u0430\u0442\u0435\u0439&quot;  } )  # \u0441\u043e\u0437\u0434\u0430\u0451\u043c \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0438 h_start         &lt;- CommandHandler('start', start) h_hubs          &lt;- MessageHandler(habs, filters = MessageFilters$hubs) h_query_handler &lt;- CallbackQueryHandler(answer_cb)  # \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0438 \u0432 \u0434\u0438\u0441\u043f\u0435\u0442\u0447\u0435\u0440 updater &lt;- updater +    h_start +   h_hubs  +   h_query_handler  # \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u043c \u0431\u043e\u0442\u0430 updater$start_polling()<\/code><\/pre>\n<\/div><\/div>\n<p>  <\/p>\n<blockquote><p>\u0417\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u0435 \u043f\u0440\u0438\u0432\u0435\u0434\u0451\u043d\u043d\u044b\u0439 \u0432\u044b\u0448\u0435 \u043f\u0440\u0438\u043c\u0435\u0440 \u043a\u043e\u0434\u0430, \u043f\u0440\u0435\u0434\u0432\u0430\u0440\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0437\u0430\u043c\u0435\u043d\u0438\u0432 &#8216;\u0422\u041e\u041a\u0415\u041d \u0412\u0410\u0428\u0415\u0413\u041e \u0411\u041e\u0422\u0410&#8217; \u043d\u0430 \u0440\u0435\u0430\u043b\u044c\u043d\u044b\u0439 \u0442\u043e\u043a\u0435\u043d, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0432\u044b \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u0438 \u043f\u0440\u0438 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0438 \u0431\u043e\u0442\u0430 \u0447\u0435\u0440\u0435\u0437 <em>BotFather<\/em> (\u043e \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0438 \u0431\u043e\u0442\u0430 \u044f \u0440\u0430\u0441\u0441\u043a\u0430\u0437\u044b\u0432\u0430\u043b \u0432 <a href=\"https:\/\/habr.com\/ru\/post\/511222\/#sozdanie-telegram-bota\">\u043f\u0435\u0440\u0432\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435<\/a>).<\/p><\/blockquote>\n<p>\u0412 \u0438\u0442\u043e\u0433\u0435 \u043c\u044b \u043f\u043e\u043b\u0443\u0447\u0438\u043c \u0432\u043e\u0442 \u0442\u0430\u043a\u043e\u0439 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442:<br \/>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/post_images\/9c9\/ada\/0e5\/9c9ada0e58b2d3dbf9bf6cd45a210f09.png\"><\/p>\n<p>  <\/p>\n<p>\u0421\u043f\u0438\u0441\u043e\u043a \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b\u0445 \u0434\u043b\u044f \u0432\u044b\u0431\u043e\u0440\u0430 \u0425\u0430\u0431\u043e\u0432 \u043c\u044b \u0432\u0431\u0438\u043b\u0438 \u0445\u0430\u0440\u0434\u043a\u043e\u0434\u043e\u043c, \u0432 \u043c\u0435\u0442\u043e\u0434\u0435 <code>habs<\/code>:<\/p>\n<p>  <\/p>\n<pre><code class=\"r\">## \u041c\u0435\u0442\u043e\u0434 \u0432\u044b\u0437\u043e\u0432\u0430 Inine \u043a\u043b\u0430\u0432\u0438\u0430\u0442\u0443\u0440\u044b habs &lt;- function(bot, update) {    IKM &lt;- InlineKeyboardMarkup(     inline_keyboard = list(       list(         InlineKeyboardButton(text = 'R', callback_data = 'r'),         InlineKeyboardButton(text = 'Data Mining', callback_data = 'data_mining'),         InlineKeyboardButton(text = 'Data Engineering', callback_data = 'data_engineering')       ),       list(         InlineKeyboardButton(text = 'Big Data', callback_data = 'bigdata'),         InlineKeyboardButton(text = 'Python', callback_data = 'python'),         InlineKeyboardButton(text = '\u0412\u0438\u0437\u0443\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u0434\u0430\u043d\u043d\u044b\u0445', callback_data = 'data_visualization')       )     )   )    # Send Inline Keyboard   bot$sendMessage(chat_id = update$message$chat_id,                    text = &quot;\u0412\u044b\u0431\u0435\u0440\u0438\u0442\u0435 \u0425\u0430\u0431&quot;,                    reply_markup = IKM) }<\/code><\/pre>\n<p>  <\/p>\n<p>\u0421\u043f\u0438\u0441\u043e\u043a \u0441\u0442\u0430\u0442\u0435\u0439 \u0438\u0437 \u0443\u043a\u0430\u0437\u0430\u043d\u043d\u043e\u0433\u043e \u0425\u0430\u0431\u0430 \u043c\u044b \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u043c \u043a\u043e\u043c\u0430\u043d\u0434\u043e\u0439 <code>habr_hub_posts()<\/code>, \u0438\u0437 \u043f\u0430\u043a\u0435\u0442\u0430 <code>habR<\/code>. \u041f\u0440\u0438 \u044d\u0442\u043e\u043c \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u043c, \u0447\u0442\u043e \u043d\u0430\u043c \u043d\u0435 \u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f \u0441\u043f\u0438\u0441\u043e\u043a \u0441\u0442\u0430\u0442\u0435\u0439 \u0437\u0430 \u0432\u0441\u0451 \u0432\u0440\u0435\u043c\u044f, \u0430 \u0442\u043e\u043b\u044c\u043a\u043e \u043f\u0435\u0440\u0432\u0430\u044f \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0430 \u043d\u0430 \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u0440\u0430\u0441\u043f\u043e\u043b\u0430\u0433\u0430\u044e\u0442\u0441\u044f 20 \u0441\u0442\u0430\u0442\u0435\u0439. \u0418\u0437 \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u043d\u043e\u0439 \u0442\u0430\u0431\u043b\u0438\u0446\u044b \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043a\u043e\u043c\u0430\u043d\u0434\u044b <code>head()<\/code> \u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u043c \u0442\u043e\u043b\u044c\u043a\u043e 5 \u0441\u0430\u043c\u044b\u0445 \u0432\u0435\u0440\u0445\u043d\u0438\u0445, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0438 \u044f\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u0441\u0430\u043c\u044b\u043c\u0438 \u0441\u0432\u0435\u0436\u0438\u043c\u0438 \u0441\u0442\u0430\u0442\u044c\u044f\u043c\u0438.<\/p>\n<p>  <\/p>\n<pre><code class=\"plaintext\">  # \u043f\u0430\u0440\u0441\u0438\u043c \u0425\u0430\u0431\u0440   posts &lt;- head(habr_hub_posts(hub, 1), 5)<\/code><\/pre>\n<p>  <\/p>\n<p>\u041b\u043e\u0433\u0438\u043a\u0430 \u043e\u0447\u0435\u043d\u044c \u0441\u0445\u043e\u0436\u0430 \u0441 \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0438\u043c \u0431\u043e\u0442\u043e\u043c, \u043d\u043e \u0432 \u0434\u0430\u043d\u043d\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 Inline \u043a\u043b\u0430\u0432\u0438\u0430\u0442\u0443\u0440\u0443 \u0441\u043e \u0441\u043f\u0438\u0441\u043a\u043e\u043c \u0441\u0442\u0430\u0442\u0435\u0439 \u043c\u044b \u0433\u0435\u043d\u0435\u0440\u0438\u0440\u0443\u0435\u043c \u0434\u0438\u043d\u0430\u043c\u0438\u0447\u0435\u0441\u043a\u0438 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0444\u0443\u043d\u043a\u0446\u0438\u0438 <code>lapply()<\/code>.<\/p>\n<p>  <\/p>\n<pre><code class=\"r\">  # \u0444\u043e\u0440\u043c\u0438\u0440\u0443\u0435\u043c \u0441\u043f\u0438\u0441\u043e\u043a \u043a\u043d\u043e\u043f\u043e\u043a   keys &lt;- lapply(1:5, function(x) list(InlineKeyboardButton(posts$title[x], url = posts$link[x])))    # \u0444\u043e\u0440\u043c\u0438\u0440\u0443\u0435\u043c \u043a\u043b\u0430\u0432\u0438\u0430\u0442\u0443\u0440\u0443   IKM &lt;- InlineKeyboardMarkup(     inline_keyboard =  keys      )<\/code><\/pre>\n<p>  <\/p>\n<p>\u0412 \u0442\u0435\u043a\u0441\u0442 \u043a\u043d\u043e\u043f\u043a\u0438 \u043c\u044b \u043f\u043e\u0434\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u043c \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 \u0441\u0442\u0430\u0442\u044c\u0438 <code>posts$title[x]<\/code>, \u0430 \u0432 \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442 <code>url<\/code> \u0441\u0441\u044b\u043b\u043a\u0443 \u043d\u0430 \u0441\u0442\u0430\u0442\u044c\u044e: <code>url = posts$link[x]<\/code>.<\/p>\n<p>  <\/p>\n<p>\u0414\u0430\u043b\u0435\u0435, \u0441\u043e\u0437\u0434\u0430\u0451\u043c \u0444\u0438\u043b\u044c\u0442\u0440, \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0438 \u0438 \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u043c \u043d\u0430\u0448\u0435\u0433\u043e \u0431\u043e\u0442\u0430.<\/p>\n<p>  <\/p>\n<h1 id=\"zaklyuchenie\">\u0417\u0430\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435<\/h1>\n<p>  <\/p>\n<p>\u0422\u0435\u043f\u0435\u0440\u044c \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u043d\u044b\u0435 \u0432\u0430\u043c\u0438 \u0431\u043e\u0442\u044b \u0431\u0443\u0434\u0443\u0442 \u0437\u043d\u0430\u0447\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0443\u0434\u043e\u0431\u043d\u0435\u0439 \u0432 \u0440\u0430\u0431\u043e\u0442\u0435, \u0437\u0430 \u0441\u0447\u0451\u0442 \u0442\u043e\u0433\u043e, \u0447\u0442\u043e \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0438\u043c\u0438 \u0431\u0443\u0434\u0435\u0442 \u043e\u0441\u0443\u0449\u0435\u0441\u0442\u0432\u043b\u044f\u0442\u044c\u0441\u044f \u0441 \u043a\u043b\u0430\u0432\u0438\u0430\u0442\u0443\u0440\u044b, \u0430 \u043d\u0435 \u0432\u0432\u043e\u0434\u043e\u043c \u043a\u043e\u043c\u0430\u043d\u0434. \u041a\u0430\u043a \u043c\u0438\u043d\u0438\u043c\u0443\u043c \u043f\u0440\u0438 \u0432\u0437\u0430\u0438\u043c\u043e\u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0438 \u0441 \u0431\u043e\u0442\u043e\u043c \u0447\u0435\u0440\u0435\u0437 \u0441\u043c\u0430\u0440\u0442\u0444\u043e\u043d \u043a\u043b\u0430\u0432\u0438\u0430\u0442\u0443\u0440\u0430 \u043e\u0449\u0443\u0442\u0438\u043c\u043e \u0443\u043f\u0440\u043e\u0441\u0442\u0438\u0442 \u043f\u0440\u043e\u0446\u0435\u0441\u0441 \u0435\u0433\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f.<\/p>\n<p>  <\/p>\n<p>\u0412 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0439 \u0441\u0442\u0430\u0442\u044c\u0435 \u043c\u044b \u0440\u0430\u0437\u0431\u0435\u0440\u0451\u043c\u0441\u044f \u043a\u0430\u043a \u0441\u0442\u0440\u043e\u0438\u0442\u044c \u043b\u043e\u0433\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u0434\u0438\u0430\u043b\u043e\u0433 \u0441 \u0431\u043e\u0442\u043e\u043c, \u0438 \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0441 \u0431\u0430\u0437\u0430\u043c\u0438 \u0434\u0430\u043d\u043d\u044b\u0445.<\/p>\n<\/div>\n<p> \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b \u0441\u0442\u0430\u0442\u044c\u0438 <a href=\"https:\/\/habr.com\/ru\/post\/516908\/\"> https:\/\/habr.com\/ru\/post\/516908\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"\n<div class=\"post__text post__text-html post__text_v1\" id=\"post-content-body\" data-io-article-url=\"https:\/\/habr.com\/ru\/post\/516908\/\">\n<p>\u042d\u0442\u043e \u0442\u0440\u0435\u0442\u044c\u044f \u0441\u0442\u0430\u0442\u044c\u044f \u0438\u0437 \u0441\u0435\u0440\u0438\u0438 &quot;\u041f\u0438\u0448\u0435\u043c telegram \u0431\u043e\u0442\u0430 \u043d\u0430 \u044f\u0437\u044b\u043a\u0435 R&quot;. \u0412 \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0438\u0445 \u043f\u0443\u0431\u043b\u0438\u043a\u0430\u0446\u0438\u044f\u0445 \u043c\u044b \u043d\u0430\u0443\u0447\u0438\u043b\u0438\u0441\u044c \u0441\u043e\u0437\u0434\u0430\u0432\u0430\u0442\u044c \u0442\u0435\u043b\u0435\u0433\u0440\u0430\u043c \u0431\u043e\u0442\u0430, \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u0442\u044c \u0447\u0435\u0440\u0435\u0437 \u043d\u0435\u0433\u043e \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f, \u0434\u043e\u0431\u0430\u0432\u0438\u043b\u0438 \u0431\u043e\u0442\u0443 \u043a\u043e\u043c\u0430\u043d\u0434\u044b \u0438 \u0444\u0438\u043b\u044c\u0442\u0440\u044b \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0439. \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u043f\u0435\u0440\u0435\u0434 \u0442\u0435\u043c \u043a\u0430\u043a \u043f\u0440\u0438\u0441\u0442\u0443\u043f\u0438\u0442\u044c \u043a \u0447\u0442\u0435\u043d\u0438\u044e \u0434\u0430\u043d\u043d\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0438 \u044f \u043a\u0440\u0430\u0439\u043d\u0435 \u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0443\u044e \u043e\u0437\u043d\u0430\u043a\u043e\u043c\u0438\u0442\u044c\u0441\u044f \u0441 <a href=\"#vse-stati-iz-serii-pishem-telegram-bota-na-yazyke-r\">\u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0438\u043c\u0438<\/a>, \u0442.\u043a. \u0442\u0443\u0442 \u044f \u0443\u0436\u0435 \u043d\u0435 \u0431\u0443\u0434\u0443 \u043e\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0442\u044c \u043d\u0430 \u043e\u043f\u0438\u0441\u0430\u043d\u043d\u044b\u0445 \u0440\u0430\u043d\u0435\u0435 \u043e\u0441\u043d\u043e\u0432\u0430\u0445 \u0431\u043e\u0442\u043e\u0441\u0442\u0440\u043e\u0435\u043d\u0438\u044f.<\/p>\n<p>  <\/p>\n<p>\u0412 \u044d\u0442\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435 \u043c\u044b \u043f\u043e\u0432\u044b\u0441\u0438\u043c \u044e\u0437\u0430\u0431\u0438\u043b\u0438\u0442\u0438 \u043d\u0430\u0448\u0435\u0433\u043e \u0431\u043e\u0442\u0430 \u0437\u0430 \u0441\u0447\u0451\u0442 \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u043a\u043b\u0430\u0432\u0438\u0430\u0442\u0443\u0440\u044b, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0441\u0434\u0435\u043b\u0430\u0435\u0442 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441 \u0431\u043e\u0442\u0430 \u0438\u043d\u0442\u0443\u0438\u0442\u0438\u0432\u043d\u043e \u043f\u043e\u043d\u044f\u0442\u043d\u044b\u043c, \u0438 \u043f\u0440\u043e\u0441\u0442\u044b\u043c \u0432 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0438.<\/p>\n<p>  <\/p>\n<div style=\"text-align:center;\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/xv\/xz\/t0\/xvxzt04r_e6svczshzxmppuilz8.png\" width=\"80%\"><\/div>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[],"tags":[],"class_list":["post-309626","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/309626","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=309626"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/309626\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=309626"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=309626"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=309626"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}