<?xml version="1.0" encoding="utf-8" ?><rss version="2.0" xmlns:tt="http://teletype.in/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:media="http://search.yahoo.com/mrss/"><channel><title>@sereja1111</title><generator>teletype.in</generator><description><![CDATA[@sereja1111]]></description><link>https://teletype.in/@sereja1111?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=sereja1111</link><atom:link rel="self" type="application/rss+xml" href="https://teletype.in/rss/sereja1111?offset=0"></atom:link><atom:link rel="next" type="application/rss+xml" href="https://teletype.in/rss/sereja1111?offset=10"></atom:link><atom:link rel="search" type="application/opensearchdescription+xml" title="Teletype" href="https://teletype.in/opensearch.xml"></atom:link><pubDate>Fri, 23 Oct 2026 21:00:52 GMT</pubDate><lastBuildDate>Fri, 23 Oct 2026 21:00:52 GMT</lastBuildDate><item><guid isPermaLink="true">https://teletype.in/@sereja1111/pythonbot</guid><link>https://teletype.in/@sereja1111/pythonbot?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=sereja1111</link><comments>https://teletype.in/@sereja1111/pythonbot?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=sereja1111#comments</comments><dc:creator>sereja1111</dc:creator><title>Создание Бота в Телеграм</title><pubDate>Wed, 20 Nov 2024 13:03:06 GMT</pubDate><media:content medium="image" url="https://img4.teletype.in/files/b9/34/b9349e9a-daac-4809-be53-74d33356d28c.png"></media:content><description><![CDATA[<img src="https://avatars.dzeninfra.ru/get-zen_doc/271828/pub_6620c604e7ae2f3528593c51_66218caa731b000bc03058f8/scale_1200"></img>Для начала нам нужно создать папку для нашего будущего проекта. Я обычно храню все свои проекты в папке C:\PythonProject. Перейдите в эту директорию и создайте новую папку с названием first_app (Можно другое но НЕ НА РУССКОМ!!!).]]></description><content:encoded><![CDATA[
  <h2 id="sRHD">📃Подготовка📃</h2>
  <ol id="zUAJ">
    <li id="QQYD">Скачать VSCode  <a href="https://code.visualstudio.com/download" target="_blank">https://code.visualstudio.com/download</a></li>
    <li id="jous">Установить питон 3.13  <a href="https://www.python.org/downloads/" target="_blank">https://www.python.org/downloads/</a>  (При установке ОБЯЗАТЕЛЬНО СТАВИМ ГАЛОЧКУ НА &quot;АДМИНСКИЕ ПРИВЕЛЕГИИ&quot; И &quot;ДОБАВИТЬ В PATH&quot;)</li>
  </ol>
  <p id="fYWw">Для начала нам нужно создать папку для нашего будущего проекта. Я обычно храню все свои проекты в папке C:\PythonProject. Перейдите в эту директорию и создайте новую папку с названием first_app (Можно другое но НЕ НА РУССКОМ!!!).</p>
  <p id="rjYL"></p>
  <p id="8T16">После этого можно запустить Visual Studio Code и открыть в нём нашу папку. Для этого нажмите на кнопку “Open Folder…”, затем в открывшемся окне выберите нужную папку и нажмите кнопку “Выбор папки”.</p>
  <figure id="XZhX" class="m_custom">
    <img src="https://avatars.dzeninfra.ru/get-zen_doc/271828/pub_6620c604e7ae2f3528593c51_66218caa731b000bc03058f8/scale_1200" width="1120" />
  </figure>
  <p id="W5pf">В открывшемся окне необходимо подтвердить, что мы доверяем этой папке и всем файлам в ней. Для этого установите флажок напротив пункта «Trust the authors of all files in the parent folder ‘PythonProject’» и нажмите кнопку «Yes, I trust the authors».</p>
  <figure id="EHTb" class="m_custom">
    <img src="https://avatars.dzeninfra.ru/get-zen_doc/271828/pub_6620c604e7ae2f3528593c51_662182e4590e6441e3d549e4/scale_1200" width="1200" />
  </figure>
  <p id="d153"></p>
  <p id="70Tl"></p>
  <p id="CGGE">Теперь давайте создадим файл для нашей программы. Для этого щёлкните по иконке «New File», которая находится в проводнике нашего проекта справа от названия проекта.</p>
  <figure id="BkXq" class="m_custom">
    <img src="https://avatars.dzeninfra.ru/get-zen_doc/271828/pub_6620c604e7ae2f3528593c51_662184dd2d4e1412957332f2/scale_1200" width="1200" />
  </figure>
  <p id="ZDjn">Создание нового файла в проекте</p>
  <p id="UewF">Введите название «<a href="https://dzen.ru/away?to=http%3A%2F%2Fmain.py%2F" target="_blank">main.py</a>» и нажмите Enter.</p>
  <figure id="C7qg" class="m_custom">
    <img src="https://avatars.dzeninfra.ru/get-zen_doc/271828/pub_6620c604e7ae2f3528593c51_662185ec9041025448c3fe3f/scale_1200" width="1200" />
  </figure>
  <p id="0DHY">Присваивание имени новому файлу в проекте</p>
  <p id="7xsW">Поскольку мы добавили расширение .py к файлу, IDE определила, что этот файл относится к языку программирования Python, и предложила нам выбрать интерпретатор. Мы нажимаем на жёлтую кнопку «Select Interpreter» и в выпадающем списке выбираем нужную нам версию Python. Я выбрал 3.10.11.</p>
  <figure id="rdEu" class="m_custom">
    <img src="https://avatars.dzeninfra.ru/get-zen_doc/271828/pub_6620c604e7ae2f3528593c51_662188a8cae932444eae2e3c/scale_1200" width="1200" />
  </figure>
  <p id="yFCl">Выбор интерпретатора</p>
  <p id="dH7A">Так как VsCode — мультиплатформенная среда разработки, нам потребуется добавить поддержку синтаксиса языка Python. Для этого можно нажать сочетание клавиш Ctrl+Shift+X или кликнуть по иконке Extensions в левом вертикальном меню.</p>
  <figure id="F8EH" class="m_custom">
    <img src="https://avatars.dzeninfra.ru/get-zen_doc/271828/pub_6620c604e7ae2f3528593c51_6621893401f29c5ac92bbd39/scale_1200" width="1200" />
  </figure>
  <p id="Ct15">Переход в раздел Extensions</p>
  <p id="V4Aj">В открывшемся окне вводим «Python» и выбираем самый верхний из предложенных вариантов, он опубликован Microsoft. Чтобы установить, нажимаем кнопку «Install».</p>
  <figure id="6ihm" class="m_custom">
    <img src="https://avatars.dzeninfra.ru/get-zen_doc/271828/pub_6620c604e7ae2f3528593c51_66218943d398694e84543d55/scale_1200" width="1200" />
  </figure>
  <p id="wp57">Установка поддержки Python</p>
  <p id="ygvq">Теперь нам осталось заполнить файл программы каким-нибудь кодом. Для примера добавим в файл main.py такой код:</p>
  <p id="NJl7">#Это комментарий<br />print(&#x27;Hello, World!&#x27;)</p>
  <figure id="dTxi" class="m_custom">
    <img src="https://avatars.dzeninfra.ru/get-zen_doc/271828/pub_6620c604e7ae2f3528593c51_66218a7eb98f5221fb170270/scale_1200" width="1200" />
  </figure>
  <p id="S1bs">Заполненный файл main.py</p>
  <p id="TxsC">Чтобы запустить программу, нужно нажать на значок запуска в правом верхнем углу.</p>
  <figure id="zhzq" class="m_custom">
    <img src="https://avatars.dzeninfra.ru/get-zen_doc/271828/pub_6620c604e7ae2f3528593c51_66218b21d7e6bf5dcbb36abf/scale_1200" width="1200" />
  </figure>
  <p id="mA3m">Запуск main.py</p>
  <p id="MZCh">👍😁Поздравляю! Вы создали свой первый проект в IDE Visual Studio Code!</p>
  <p id="mrc4"></p>
  <h2 id="hOpN">УСТАНОВКА БИБЛИОТЕК</h2>
  <p id="zDyD"></p>
  <p id="ieKQ">В верхней панели кликаем на Терминал и открываем внизу powershell. Скачиваем библиотеки вставляя туда код ниже и нажимая Enter</p>
  <p id="vB6j"></p>
  <p id="YaFX"><code>pip install pytelegrambotapi</code></p>
  <p id="fWzO"><code>pip install requests</code></p>
  <p id="xioA"><code>pip install python-telegram-bot</code></p>
  <p id="FwhX"></p>
  <h2 id="Dp4J">Переходим к Боту✅</h2>
  <p id="tg9N"></p>
  <h3 id="Vcav">СПОСОБ 1:</h3>
  <p id="VxDY"></p>
  <p id="gNFj"></p>
  <p id="T2hL">Часть 1: Регистрация бота</p>
  <p id="TKBW">Самая простая и описанная часть. Очень коротко: нужно найти бота <em>@BotFather</em>, написать ему <em>/start</em>, или <em>/newbot</em>, заполнить поля, которые он спросит (название бота и его короткое имя), и получить сообщение с токеном бота и ссылкой на документацию. Токен нужно сохранить, желательно надёжно, так как это единственный ключ для авторизации бота и взаимодействия с ним.</p>
  <h3 id="RIjv">Часть 2: Подготовка к написанию кода</h3>
  <p id="B8nV">Как уже было сказано в заголовке, писать бота мы будем на Python&#x27;е. В данной статье будет описана работа с библиотекой PyTelegramBotAPI (Telebot). Если у вас не установлен Python, то сперва нужно сделать это: в терминале Linux нужно ввести</p>
  <pre id="hN0w">sudo apt-get install python python-pip</pre>
  <p id="rmPT">Если же вы пользуетесь Windows, то нужно скачать Python с официального сайта .</p>
  <p id="ne7z">После, в терминале Linux, или командной строке Windows вводим</p>
  <pre id="6iS1">pip install pytelegrambotapi</pre>
  <p id="MDbo">Теперь все готово для написания кода.</p>
  <h3 id="1xaV">Часть 3: Получаем сообщения и говорим «Привет»</h3>
  <p id="rNmS"><em>Небольшое отступление. Телеграмм умеет сообщать боту о действиях пользователя двумя способами: через ответ на запрос сервера (Long Poll), и через Webhook, когда сервер Телеграмма сам присылает сообщение о том, что кто-то написал боту. Второй способ явно выглядит лучше, но требует выделенного IP-адреса, и установленного SSL на сервере. В этой статье я хочу рассказать о написании бота, а не настройке сервера, поэтому пользоваться мы будем Long Poll&#x27;ом.</em></p>
  <p id="6pAJ">Открывайте ваш любимый текстовый редактор, и давайте писать код бота!</p>
  <p id="IhVB">Первое, что нужно сделать это импортировать нашу библиотеку и подключить токен бота:</p>
  <pre id="x1YL">import telebot;bot = telebot.TeleBot(&#x27;%ваш токен%&#x27;);</pre>
  <p id="Dn6b">Теперь объявим метод для получения текстовых сообщений:</p>
  <pre id="u5UT">@bot.message_handler(content_types=[&#x27;text&#x27;])def get_text_messages(message):</pre>
  <p id="mH9a">В этом участке кода мы объявили слушателя для текстовых сообщений и метод их обработки. Поле content_types может принимать разные значения, и не только одно, например</p>
  <pre id="P10g">@bot.message_handler(content_types=[&#x27;text&#x27;, &#x27;document&#x27;, &#x27;audio&#x27;])</pre>
  <p id="nD4T">Будет реагировать на текстовые сообщения, документы и аудио. Более подробно можно почитать в <a href="https://github.com/eternnoir/pyTelegramBotAPI" target="_blank">официальной документации</a></p>
  <p id="10jC">Теперь добавим в наш метод немного функционала: если пользователь напишет нам «Привет», то скажем ему «Привет, чем я могу помочь?», а если нам напишут команду «/help», то скажем пользователю написать «Привет»:</p>
  <pre id="TkNX">if message.text == &quot;Привет&quot;:    bot.send_message(message.from_user.id, &quot;Привет, чем я могу тебе помочь?&quot;)elif message.text == &quot;/help&quot;:    bot.send_message(message.from_user.id, &quot;Напиши привет&quot;)else:    bot.send_message(message.from_user.id, &quot;Я тебя не понимаю. Напиши /help.&quot;)</pre>
  <p id="TfqN">Данный участок кода не требует комментариев, как мне кажется. Теперь нужно добавить в наш код только одну строчку (вне всех методов).</p>
  <pre id="LPt5">bot.polling(none_stop=True, interval=0)</pre>
  <p id="ERrH">Теперь наш бот будет постоянно спрашивать у сервера Телеграмма «Мне кто-нибудь написал?», и если мы напишем нашему боту, то Телеграмм передаст ему наше сообщение. Сохраняем весь файл, и пишем в консоли</p>
  <pre id="9fX6">python bot.py</pre>
  <p id="sKL7">Где bot.py – имя нашего файла.</p>
  <p id="PGKS">Теперь можно написать боту и посмотреть на результат:</p>
  <figure id="MmVq" class="m_custom">
    <img src="https://habrastorage.org/r/w1560/webt/ho/oo/c8/hoooc8j1mwnptnjfde8ll7nqzea.jpeg" width="360" />
  </figure>
  <h3 id="iZZc">Часть 4: Кнопки и ветки сообщений</h3>
  <p id="zCzI">Отправлять сообщения это несомненно весело, но ещё веселее вести с пользователем диалог: задавать ему вопросы и получать на них ответы. Допустим, теперь наш бот будет спрашивать у пользователя по очереди его имя, фамилию и возраст. Для этого мы будем использовать метод register_next_step_handler бота:</p>
  <pre id="GcSo">name = &#x27;&#x27;;surname = &#x27;&#x27;;age = 0;@bot.message_handler(content_types=[&#x27;text&#x27;])def start(message):    if message.text == &#x27;/reg&#x27;:        bot.send_message(message.from_user.id, &quot;Как тебя зовут?&quot;);        bot.register_next_step_handler(message, get_name); #следующий шаг – функция get_name    else:        bot.send_message(message.from_user.id, &#x27;Напиши /reg&#x27;);def get_name(message): #получаем фамилию    global name;    name = message.text;    bot.send_message(message.from_user.id, &#x27;Какая у тебя фамилия?&#x27;);    bot.register_next_step_handler(message, get_surnme);def get_surname(message):    global surname;    surname = message.text;    bot.send_message(&#x27;Сколько тебе лет?&#x27;);    bot.register_next_step_handler(message, get_age);def get_age(message):    global age;    while age == 0: #проверяем что возраст изменился        try:             age = int(message.text) #проверяем, что возраст введен корректно        except Exception:             bot.send_message(message.from_user.id, &#x27;Цифрами, пожалуйста&#x27;);      bot.send_message(message.from_user.id, &#x27;Тебе &#x27;+str(age)+&#x27; лет, тебя зовут &#x27;+name+&#x27; &#x27;+surname+&#x27;?&#x27;)</pre>
  <p id="st9w">И так, данные пользователя мы записали. В этом примере показан очень упрощённый пример, по хорошему, хранить промежуточные данные и состояния пользователя нужно в БД, но мы сегодня работаем с ботом, а не с базами данных. Последний штрих – запросим у пользователей подтверждение того, что все введено верно, да не просто так, а с кнопками! Для этого немного отредактируем код метода get_age</p>
  <pre id="tkQn">def get_age(message):    global age;    while age == 0: #проверяем что возраст изменился        try:             age = int(message.text) #проверяем, что возраст введен корректно        except Exception:             bot.send_message(message.from_user.id, &#x27;Цифрами, пожалуйста&#x27;);      keyboard = types.InlineKeyboardMarkup(); #наша клавиатура      key_yes = types.InlineKeyboardButton(text=&#x27;Да&#x27;, callback_data=&#x27;yes&#x27;); #кнопка «Да»      keyboard.add(key_yes); #добавляем кнопку в клавиатуру      key_no= types.InlineKeyboardButton(text=&#x27;Нет&#x27;, callback_data=&#x27;no&#x27;);      keyboard.add(key_no);      question = &#x27;Тебе &#x27;+str(age)+&#x27; лет, тебя зовут &#x27;+name+&#x27; &#x27;+surname+&#x27;?&#x27;;      bot.send_message(message.from_user.id, text=question, reply_markup=keyboard)</pre>
  <p id="fxue">И теперь наш бот отправляет клавиатуру, но если на нее нажать, то ничего не произойдёт. Потому что мы не написали метод-обработчик. Давайте напишем:</p>
  <pre id="YbqY">@bot.callback_query_handler(func=lambda call: True)def callback_worker(call):    if call.data == &quot;yes&quot;: #call.data это callback_data, которую мы указали при объявлении кнопки        .... #код сохранения данных, или их обработки        bot.send_message(call.message.chat.id, &#x27;Запомню : )&#x27;);    elif call.data == &quot;no&quot;:         ... #переспрашиваем</pre>
  <p id="nzH4">Остаётся только дописать в начало файла одну строку:</p>
  <pre id="Nqzv">from telebot import types</pre>
  <p id="0w2E">Вот и всё, сохраняем и запускаем нашего бота:</p>
  <figure id="bD4R" class="m_original">
    <img src="https://img2.teletype.in/files/5f/97/5f9727aa-91d6-430e-adcc-5ef401e03560.png" width="720" />
  </figure>
  <p id="7f9C"></p>
  <p id="g92C"></p>
  <p id="X3QI"></p>
  <h3 id="Dn2v">СПОСОБ 2 (ДРУГАЯ БИБЛИОТЕКА)</h3>
  <p id="lXsm"></p>
  <p id="KtAb">Создание простого Telegram-бота на Python, который будет отвечать &quot;Привет&quot; при команде <code>/start</code>, можно реализовать с помощью библиотеки <code>python-telegram-bot</code>. Убедитесь, что у вас установлен Python и библиотека <code>python-telegram-bot</code>. Если библиотека не установлена, вы можете установить её с помощью pip:</p>
  <p id="9zZo"><code>pip install python-telegram-bot</code></p>
  <p id="GY0B"><strong>КОД</strong></p>
  <p id="pUN1"><code>import logging<br />from telegram import Update<br />from telegram.ext import Updater, CommandHandler, CallbackContext</code></p>
  <p id="AbN7"><code># Включаем логирование<br />logging.basicConfig(format=&#x27;%(asctime)s - %(name)s - %(levelname)s - %(message)s&#x27;, level=logging.INFO)</code></p>
  <p id="51GF"><code># Определяем функцию, которая будет обрабатывать команду /start<br />def start(update: Update, context: CallbackContext) -&gt; None:<br />    update.message.reply_text(&#x27;Привет&#x27;)</code></p>
  <p id="1gVG"><code>def main() -&gt; None:<br />    # Вставьте сюда ваш токен<br />    TOKEN = &#x27;YOUR_TELEGRAM_BOT_TOKEN&#x27;</code></p>
  <p id="X8ni"><code>    # Создаем Updater и передаем ему токен вашего бота<br />    updater = Updater(TOKEN)</code></p>
  <p id="52X2"><code>    # Получаем диспетчер для регистрации обработчиков<br />    dispatcher = updater.dispatcher</code></p>
  <p id="P1kw"><code>    # Регистрация обработчика команды /start<br />    dispatcher.add_handler(CommandHandler(&quot;start&quot;, start))</code></p>
  <p id="4iKm"><code>    # Запускаем бота<br />    updater.start_polling()</code></p>
  <p id="f7P2"><code>    # Ожидаем завершения работы<br />    updater.idle()</code></p>
  <p id="5Py8"><code>if __name__ == &#x27;__main__&#x27;:<br />    main()</code></p>
  <p id="1h0T"></p>
  <h3 id="e2gB">Инструкции по использованию:</h3>
  <ol id="I9RM">
    <li id="SQJI">Замените <code>YOUR_TELEGRAM_BOT_TOKEN</code> на токен вашего бота, который вы можете получить у <a href="true">BotFather</a>.</li>
    <li id="4v1Q">Запустить программу И НЕ ВЫКЛЮЧАТЬ ПОКА НЕ ЗАКОНЧИШЬ ДИАЛОГ ИНАЧЕ БОТ НЕ ОТВЕТИТ. Это происходит из за того что компьютер выступает в роли ХОСТА для бота</li>
  </ol>
  <ol id="xqjY">
    <li id="hCCj">Откройте Telegram, найдите своего бота и отправьте команду <code>/start</code>. Бот должен ответить &quot;Привет&quot;.</li>
  </ol>

]]></content:encoded></item></channel></rss>