Содержание

15 сервисов для простого создания ботов в Telegram — Сервисы на vc.ru

{«id»:89824,»url»:»https:\/\/vc.ru\/services\/89824-15-servisov-dlya-prostogo-sozdaniya-botov-v-telegram»,»title»:»15 \u0441\u0435\u0440\u0432\u0438\u0441\u043e\u0432 \u0434\u043b\u044f \u043f\u0440\u043e\u0441\u0442\u043e\u0433\u043e \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u0431\u043e\u0442\u043e\u0432 \u0432 Telegram»,»services»:{«facebook»:{«url»:»https:\/\/www.facebook.com\/sharer\/sharer.php?u=https:\/\/vc.ru\/services\/89824-15-servisov-dlya-prostogo-sozdaniya-botov-v-telegram»,»short_name»:»FB»,»title»:»Facebook»,»width»:600,»height»:450},»vkontakte»:{«url»:»https:\/\/vk.com\/share.php?url=https:\/\/vc.ru\/services\/89824-15-servisov-dlya-prostogo-sozdaniya-botov-v-telegram&title=15 \u0441\u0435\u0440\u0432\u0438\u0441\u043e\u0432 \u0434\u043b\u044f \u043f\u0440\u043e\u0441\u0442\u043e\u0433\u043e \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u0431\u043e\u0442\u043e\u0432 \u0432 Telegram»,»short_name»:»VK»,»title»:»\u0412\u041a\u043e\u043d\u0442\u0430\u043a\u0442\u0435″,»width»:600,»height»:450},»twitter»:{«url»:»https:\/\/twitter.

com\/intent\/tweet?url=https:\/\/vc.ru\/services\/89824-15-servisov-dlya-prostogo-sozdaniya-botov-v-telegram&text=15 \u0441\u0435\u0440\u0432\u0438\u0441\u043e\u0432 \u0434\u043b\u044f \u043f\u0440\u043e\u0441\u0442\u043e\u0433\u043e \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u0431\u043e\u0442\u043e\u0432 \u0432 Telegram»,»short_name»:»TW»,»title»:»Twitter»,»width»:600,»height»:450},»telegram»:{«url»:»tg:\/\/msg_url?url=https:\/\/vc.ru\/services\/89824-15-servisov-dlya-prostogo-sozdaniya-botov-v-telegram&text=15 \u0441\u0435\u0440\u0432\u0438\u0441\u043e\u0432 \u0434\u043b\u044f \u043f\u0440\u043e\u0441\u0442\u043e\u0433\u043e \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u0431\u043e\u0442\u043e\u0432 \u0432 Telegram»,»short_name»:»TG»,»title»:»Telegram»,»width»:600,»height»:450},»odnoklassniki»:{«url»:»http:\/\/connect.ok.ru\/dk?st.cmd=WidgetSharePreview&service=odnoklassniki&st.shareUrl=https:\/\/vc.ru\/services\/89824-15-servisov-dlya-prostogo-sozdaniya-botov-v-telegram»,»short_name»:»OK»,»title»:»\u041e\u0434\u043d\u043e\u043a\u043b\u0430\u0441\u0441\u043d\u0438\u043a\u0438″,»width»:600,»height»:450},»email»:{«url»:»mailto:?subject=15 \u0441\u0435\u0440\u0432\u0438\u0441\u043e\u0432 \u0434\u043b\u044f \u043f\u0440\u043e\u0441\u0442\u043e\u0433\u043e \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u0431\u043e\u0442\u043e\u0432 \u0432 Telegram&body=https:\/\/vc.
ru\/services\/89824-15-servisov-dlya-prostogo-sozdaniya-botov-v-telegram»,»short_name»:»Email»,»title»:»\u041e\u0442\u043f\u0440\u0430\u0432\u0438\u0442\u044c \u043d\u0430 \u043f\u043e\u0447\u0442\u0443″,»width»:600,»height»:450}},»isFavorited»:false}

137 908 просмотров

Как создать и подключить бота к каналу Telegram для оформления постов!

В мессенджере Telegram, если размещать на своём канале посты стандартным способом, не заморачиваясь с подключением каких-либо ботов, вы не сможете эти посты никак оформить. Максимум — текст и ссылку приложить. И то ссылку эту даже спрятать не получится в какое-нибудь слово или фразу, можно только в обычном виде отправить 🙂 А это, как говорится, не камельфо, некрасиво… Ну и другие возможности оформления также будут закрыты: возможность оформить пост разными шрифтами, прикрепить картинку, добавить смайликов и прочего.

Сейчас речь идёт именно о посте (т. е. о сообщении) на канал, а не о статье в Telegra.ph!

Но вы же хотите канал вести нормально, а не как попало? 🙂 А нормально — это значит не только годный контент выдавать подписчикам, но и оформлять на уровне!

Чтобы иметь возможность оформлять посты, нужно к своему каналу подключить специального бота.

Система этих ботов в Телеграме на самом деле маленько запутанная 🙂 Я не сразу въехал что к чему и почему, например, одного бота нужно создавать через другого бота 🙂 Но я помогу в этом разобраться и после того как начнете потихоньку работать с ботами, пазл в голове полностью сложится!

Боты ControllerBot, BotFather и собственный наш бот. Что к чему!

Для начала внесу немного ясности, чтобы сразу хоть немного прояснить ситуацию с этими ботами 🙂

  • ControllerBot — это, проще говоря, основной управляющий бот в Телеграме. Через него вы можете управлять своими каналами (подключать к каналам собственных ботов и отключать), перейти к публикации поста в канале.

    С этого бота мы начнём работу по созданию своего бота и подключению его к каналу.

  • BotFather — служит непосредственно для управления вашими ботами. Через него можно создать и редактировать своих ботов.

  • Наш собственный бот, которого мы создадим и назовём как душе угодно, уже будет нам нужен именно для создания и оформления постов на наш канал.

Создаём собственного бота через ControllerBot и BotFather

Для добавления бота, в строке поиска Telegram наберите «ControllerBot» [1], затем откройте найденного бота с таким же названием [2] и в окне бота нажмите «Запустить» [3] внизу.



Бот предложит выбрать язык, на котором вам будут выдаваться его инструкции. Выбирайте родной язык:



Бот предлагает нам список возможных действий. Сейчас нам необходимо подключить свой канал. Кликаем по предложенной ссылке «/addchannel» (добавить канал).



Получаем инструкцию по подключению бота. Кликаем по имени бота «@BotFather», указанного в пункте 1.



Вы перейдёте сразу в окно бота BotFather, через которого уже будем создавать своего бота. Нажмите «Запустить» внизу.



Бот ответит нам, после чего кликните по команде «/newbot»:



Теперь нужно указать имя создаваемого бота и отправить сообщение. Можно указывать любое, например, часть имени фамилии или часть названия канала, как удобно. Пример:



Теперь необходимо указать ник для создаваемого бота. Здесь можно указать тоже самое, но обязательно на конце должно стоять «bot» либо через знак нижнего подчёркивания «_bot». Пример:



Если вы вдруг получили сообщение «Sorry, this username is already taken. Please try something different.», то значит такой ник уже занят и нужно указать другой.



Если всё верно сделали, получите сообщение об успешном создании бота и специальный длинный ключ (токен):



Его нужно скопировать в ControllerBot, с которым мы сразу начинали работу.

Вставив ключ в окно чата ControllerBot, он в ответ выдаст инструкцию по добавлению канала к нему. Выполняем её…

Скопируйте из пункта 1 имя бота, которого вы только что создавали:



Затем открываем созданный нами канал для работы, переходим в его меню и выбираем «Управление каналом».



Открываем раздел «Администраторы».



Внизу нажимаем «Добавить администратора».



В строке поиска вверху [1] вставьте имя скопированного бота и после, когда он появится в результатах поиска, кликните по нему [2].



Нажимаем «ОК» в окне с вопросом о назначении бота администратором.



Ничего не изменяя в настройках, нажмите «Сохранить» в следующем окне.



Всё, бот в качестве администратора канала добавлен и теперь окно можно закрыть:



Теперь, выполняя пункт 2, нам нужно переслать в чат «Controller Bot» любое сообщение с вашего канала или его адрес.

Проще взять адрес, поскольку канал новый и в нём может ещё не быть никаких сообщений.

Открываем снова меню канала и выбираем «Описание канала».



Копируем ссылку, которая является адресом вашего канала (кликните по ней правой кнопкой мыши и выберите «Копировать ссылку»).



Отправляем эту ссылку боту «Controller Bot».



Следующим сообщением он предложит выбрать часовой пояс. Нужно отправить в ответ название вашего города.



Далее бот уточняет, верно ли он выбрал город. Нажмите «Верно», если всё так или введите другой ближайший к вам город.



На этом всё. Канал к боту «Controller Bot» был подключен, основные настройки выполнены, о чём свидетельствует очередной ответ бота:




Если теперь вам потребуется отредактировать бота, то воспользуйтесь для этого ботом BotFather, т.е. перейдите в чат с ним и выбирайте из его меню нужные команды. Если захотите отключить бота от канала или подключить к каналу другого бота, то тогда вам нужен ControllerBot и его меню подскажет вам, что нужно сделать.

Заключение

Без ботов, работая со своим каналом, пожалуй, не обойтись. Ну или обойтись, но тогда канал будете вести не совсем качественно и упустите разные возможности! Поэтому, скорее всего, придётся с этими всеми нюансами столкнуться, если решите всерьёз заниматься работой в Telegram, т.е. развитием своего канала.

Как видно, не так уж всё и сложно, причём боты все сами подсказывают, говорят куда нажать и для чего.

Буду рад адекватным комментариям и готов подискутировать по теме статьи 🙂

Подборка самых полезных ботов в Телеграм

Предлагаем вашему вниманию список самых полезных и востребованных ботов в Телеграм.
Список постоянно обновляется, дополняется и улучшается. Поэтому можете смело добавлять эту страницу в закладки.
Боты разделены по категориям для вашего удобства.

Официальный боты

@BotFather — главный и официальный бот Telegram. С помощью него создаются все остальные боты.
@telegraph — бот поможет закрепить ваши статьи Telegra.ph за вашим аккаунтом для дальнейшей работы с ними.
@SpamBot — официальный информационный спам Bot. Помогает пользователям с аккаунтами «под спамом» восстановить полную функциональность.

Боты для Администраторов каналов

@ControllerBot — бот для создания красиво оформленных постов, отложенных постов, позволяет просматривать статистику.
@markdownrobot — бот для создания постов в формате маркдаун.
@clwd_bot — бот для постинга. Доступен только для участников Телегачата.
@like — бот поможет вам добавить к посту до 6 кнопок с реакциями-эмодзи.
@vote — бот поможет вам создавать опросы и делиться ими с друзьями.
@groupagreebot — бот для создания опросов, проголосовавших видят все.
@SecretgramBot — бот для создания анонимных комментариев к посту.
@LivegramBot — бот помогает разработать собственного бота обратной связи для вашего канала.
@myproxybot — ещё один бот для обратной связи.
@ShortUrlRUBot — бот для сокращения ссылок.
@crssbot — бот для создания RSS-ленты для вашего Telegram канала.
@chotamreaderbot — бот мгновенно переносит  содержимое любых статей в Telegraph.
@crosser_bot — считает пересечения в каналах. Показывает аудиторию вашего канала. Спасает от неэффективных ВП.

Боты для интеграции сайтов и служб c Телеграм

@IFTTT — бот  помогает интегрировать ваши каналы и группы Telegram с другими сайтами и службами.
@vk_bot — бот для интеграции с группами vk.com (для админов).
@pstrbot — отправляет записи из разных социальных сетей в ваши каналы.
@aximobot — бот агрегатор потоков RSS и социальных сетей.
@telefeedbot — бот для чтения RSS и социальных сетей прямо в Telegram
@ChannelBrobot — бот для постинга сообщений, поддерживает RSS, интеграцию Zapier.
@TheFeedReaderBot — постит из RSS (вебсайты, блоги), FB, YouTube, Instagram, Twitter.
@re_postBot — Repost VK —> Telegram

Боты для работы с Instagram

@socialsaverbot — бот помогает сохранить фото и видео из Instagram.
@InstaRusBot — бот помогает скачать фото и видео из Instagram.
@InstaBot — бот позволяет скачивать фотографии, видео и аватарки из Instagram по отправленной ссылке.
@text4instabot — бот делает правильные абзацы для Instagram.

Боты для статистики и аналитики

@TGStat_Bot — бот показывает статистику любого канала Telegram, которые есть у него в базе, а также количество подписчиков в динамике, охват публикаций и много другое.
@GramMetricaBot — бот для ежедневного отслеживания количества подписчиков твоего канала или группы.

Боты для чатов

@banofbot — бот, позволяющий удалять участников из чата путём голосования.
@GBReborn_bot — бот модератор. Краткий гайд по установке и использованию (русский). 
@joinhider_bot — бот для удаления сообщений о том, что пользователь зашёл или покинул чат.
@combot — многофункциональный бот для администрирования чата со статистикой.

Финансовые боты

@BTC_CHANGE_BOT — бот для покупки/продажи классического Биткоина
@BCC_CHANGE_BOT — бот для покупки/продажи Биткоин кэш
@ETH_CHANGE_BOT— бот для покупки/продажи Эфириум

Кино и фильмы

@cnxbot — позволяет смотреть любимые фильмы и сериалы в отличном качестве, без ограничений.
@kinomanbot — позволяет выбрать себе кино на вечер.
@VidusBot — поиск видео не выходя из Телеграм. Доступно в инлайне.
@smotribot — новинки, «старинки» и просто классные фильмы.
@smo3bot — смотри кино в Telegram-боте.

Книжные боты

@flibustafreebookbot — бот для быстрого поиска и скачивания книг.
@mybookbot — бот для поиска и скачивания художественных книг. Умеет искать по авторам и названиям книг.
@KnizhkaBot — поиск аудиокниг.
@bzdnbot — поиск книг по IT, программированию, взлому.
@eKnigaBot — позволяет читать книги онлайн, без скачивания.
@DualBookBot — параллельное чтение — это чтение одного и того же текста на двух языках: родном и изучаемом.

Боты для автолюбителей

@AvinfoBot — проверка продавца автомобиля по сотовому телефону, госномеру или VIN-коду автомобиля.
@CarModelBot — распознает модель автомобиля по его изображению

 

Напишите нам в комментариях, каких ботов используете Вы?

Создание бота в Телеграмм: всего 3 простых шага

Привет, на связи Игорь Зуевич.  Мессенджер пользуется такой популярностью не только за ряд особенностей, которые выделяют его среди похожих программ, но и из-за ботов. Их здесь огромное количество. Найти определенную программу, позволяющую облегчить работу, можно. В интернете полно информации, где блогеры советуют и составляют ТОП-10 наиболее популярных роботов.

Если многообразие не устраивает и хочется создать самостоятельно бота, который будет выполнять именно ваши команды, следует воспользоваться советами этой статьи. Мы предлагаем пользователям 3 шага для создания бота в Телеграмм.

Действия

На первый взгляд, создание бота кажется сложным, поэтому хочется обратиться к специалисту, но стоит немного вооружиться информацией, как становится идея более реальной и выполнимой.

Чтобы создать бота, нужно знать язык программирования и зарегистрированный хостинг. Если знания в этой области минимальны, обратимся к серверу Manybot.io. Здесь создаются помощники, способные рассылать сообщения, делать автопостинг и создавать меню. Если действия устраивают, можно начать создание бота.


Шаг №1

Заходим на сервер и проходим регистрацию. Выбираем меню на русском языке и находим окошко с надписью “Создать нового бота”.

Шаг №2

Следующее действие — зарегистрироваться в @BotFather. Для этого нужно перейти по возникшей ссылке и заполнить нужные поля. Введем команду /newbot. После нужно придумать имя для своего бота. Оно должно быть легким и логичным и иметь обязательную приставку bot.

Шаг №3

Копируем ключ-токен, полученный в результате предыдущих действий. Возвращаемся обратно в Moneybot и нажимаем там на окно “Я скопировал токен”. Осталось всего лишь придумать описание и все, собственный бот готов.


Оформляем меню

Создание робота не занимает много времени, а с настройками придется немного повозиться. Нужно найти свою разработку в поисковике и задать ей программы для работы. Чтобы он смог в дальнейшем выполнять команды, следует их прописать в определенной строке. Для этого нужно зайти в настройки и ввести текст и имя команды. Осталось дождаться оповещения об успешном завершении создания.

Главное меню настраиваем по тому же принципу. Входим в настройки, находим окно с соответствующей надписью и входим туда. Нажимаем на значок “Добавить пункт меню”, выбираем ранее созданную команду и называем ее. Меню готово.

Отдельный плюс программы Manybot заключается в том, что создается моментальная настройка автопостинга. Эта функция позволяет читателям быстро получать новости и обновления в соцсетях, не выходя из Телеграмм. Чтобы его запустить, укажите RSS-поток своего блога. Придется немного подождать, чтоб прошла автоматическая проверка и пришло сообщение об успешном завершении.

Всего несколько минут понадобится потратить на создание своего бота в Телеграмм. С его помощью мы можем оформить отложенное сообщение. Для этого нужно набрать команду “newpost”. Затем нужно ввести в свободное поле соответствующий пост и указать время отправки. Все готово!

С помощью своих ботов многие компании проводят опросы. Как это сделать? Набираем в командной строке commands, вводим нужную команду и создаем вопрос с предполагаемым ответом. Просмотреть ответы есть возможность в главном меню, где расположено окошко с надписью “Ответы на формы”.

Начиная с простого бота, в дальнейшем можно научиться создавать сложные запросы, которые будет выполнять робот, помогая в работе бизнесмена, блогера или рекламщика.


Как видите, если вы уже знаете о том, чем полезны боты для пользователей Телеграмм, то создавайте бота самостоятельно, с нашей инструкцией, всего за три простых шага. Действовать лучше сообща и вместе с теми людьми, у которых уже есть опыт и результаты. Приходите в наши программы, заодно и заработаете больше!

С Вами,
       — Игорь Зуевич.

Обязательно скачайте:

Если следующие 5 минут вы можете инвестировать в  самообразование, то переходите по ссылке и читайте следующую нашу статью: 3 совета людям с инвалидностью: как начать зарабатывать в интернете

Оставьте комментарий к этой статье ниже

Как создать бота в Telegram: найти ботов в Телеграмм

Боты — это особые аккаунты в Telegram, которые могут выполнить различные функции и тем самым упрощать жизнь пользователей. Боты могут принимать и отправлять сообщения. Непосредственно рабочий код бота размещаете на сервере разработчика, а не на серверах Telegram. Исключением являются фирменные боты мессенджера (например для работы со стикерами).

Когда вы отправляете боту сообщение (или встроенную команду), она обрабатывается на сервере и бот предоставляет вам ответ или результат выполнения какого-то запроса. Этот результат вы получаете прямо в интерфейсе мессенджера. Ответом может быть что угодно, обработанное фото или текущий курс валют, зависит от того, что бот умеет делать.

Зачем нужны боты в Телеграмм?

Поскольку боты способны выполнять сотни функций, можно условно разделить их по видам:

  1. Развлечения. Сюда попадают бота, которые предоставляют развлекательный контент, например игры, викторины, смешные картинки, анекдоты, подберут вам фильм или книгу.
  2. Информационные. Эти боты могут оперативно отправлять вам информацию о какой-нибудь сфере, которой вы интересуетесь или присылать какую-то статистику.
  3. Услуги. Любой бот, способный стать посредником какой-то услуги. Например, выставить что-то на продажу, заказать пиццу, отследить билет на поезд.
  4. Продажи. Удивительно, но с помощью ботов можно совершать покупки в интернете.
  5. Чат-боты. Этих ботов можно добавить в чат. Будут собирать статистику или развлекать пользователей. Могут выводить какую-то полезную информацию.

И много-много других категорий. Посмотреть полный список вы можете на нашем сайте в разделе каталог ботов для Телеграмм. Так вы сможете понять какие вообще бывают боты.

Как найти ботов в Телеграмм?

Проще всего найти бота в интернете или тематическом канале. Там будет ссылка, которая откроет диалог с ним. Если такой ссылки нет, найдите название бота и вставьте его в поисковую строку мессенджера.

Можно искать ботов наугад, по названию с помощью поисковой строки внутри мессенджера Телеграмм, но что-то полезное найти будет сложно.

Есть бот @Storebot, его основная задача помочь вам найти других полезных ботов.

Несколько тысяч ботов вы сможете найти в нашем каталоге с ботами.

Как добавить бота и как им пользоваться?

Для того, чтобы бот сохранился в списке ваших диалогов, достаточно начать с ним диалог с помощью кнопки Start. После этого бот будет подключен и можно будет начать им пользоваться. Рассмотрим на примере бота Яндекса.

Находим бота

Шаг 1

Шаг 2

Делаем запросу боту

Шаг 3

Шаг 4

Работа остальных ботов идентична. Разве что у некоторых большой список команд, которые начинаются с символа / и позволяют давать разные поручения, которые предусмотрел автор бота.

Кстати, у большинства ботов есть базовая команда /help с помощью которой можно узнать что бот умеет делать и другую полезную информацию.

Чтобы поделиться ботом с друзьями, можно переслать какое-нибудь сообщение от бота нужному контакту, либо скопировать его @username для поиска. Еще бота можно добавить в чат по аналогии с добавлением пользователей.

Как удалить бота в Телеграмм?

Некоторые боты могут стать слишком навязчивыми. Чтобы удалить бота проделайте следующее:

  1. Откройте чат с ботом.
  2. Нажмите на его имя или аватарку сверху.
  3. Найди кнопку Остановить и заблокировать.
  4. После этого можете очистить/удалить чат, бот вас больше не побеспокоит.

Что делать, если бот в Телеграмм не отвечает?

Если бот игнорирует ваши команды, то вариантов может быть несколько: не работает сервер, где живет бот; разработчик допустил ошибки при создании бота; бота заблокировали.

Все случаи, кроме последнего, решаются сами собой постепенно. В случае блокировки бота, пользоваться им уже вряд ли получится. Так что совет: просто ждите, пока бот заработает, сами вы никак не это на повлияете.

На этом мы заканчиваем часть статьи, которая описывает как пользоваться ботами в Телеграмм и идем дальше.

Как создать бота в Telegram?

Если отбросить варианты написания бота на одном из языков программирования и размещения функционала на отдельном сервере, то есть 1 простой способ, для начала:

  1. Начните диалог с ботом @BotFather.
  2. Напишите ему команду /newbot.
  3. Придумайте уникальное имя боту, которое будет заканчиваться словом bot.
  4. Выберите аватар бота.
  5. Получите уникальный токен на своего бота и обязательно сохраните его в текстовом файле, очень важно его не потерять.
  6. На этом этапе бот создан, чтобы научить его чему-то, есть другой бот.
  7. Напишите боту @Paquebot, он умеет создавать ботов по принципу конструктора, писать какой-то код и размещать его на сервере не потребуется.

Если же вам нужен бот со сложным функционалом или интеграцией с вашим сайтом/сервисом, то создать его самому не получится, необходимо обратиться к специалисту, которые реализует весь функционал по вашему техническому заданию.

Список полезных ботов

Небольшой ТОП ботов для того, чтобы вы быстрее смогли понять их возможности:

    1. @delorean_bot бот-напоминалка, задаете сообщение и время, в которое бот должен вам о чем-нибудь напомнить.
    2. @movie_bot — бот поможет подобрать интересный фильм.
    3. @instasave_bot — скачивает любое фото из Инстаграмма.
    4. @cbr_bot — бот выдает курс валют, умеет конвертировать валюты.
    5. @ytranslatebot — бот-переводчик, поддерживает все языки мира.
    6. @imagesearchbot — бот ищет картинки по запросу прямо в чате.
    7. @Weatherman — бот показывает прогноз погоды.
    8. @Pikabubestbot ― присылает популярные посты с сайта Pikabu.
    9. @PollBot ― бот для создания опросов в чатах.
    10. @vkmusic_bot ― позволяет находить и слушать музыку.

Больше интересных ботов вы найдете в нашем каталоге ботов.

Как создать чат-бота Telegram

Чат-бот — это автоматизированный многофункциональный помощник, который может принимать отправленные и отправленные инициированные сообщения, а с помощью SendPulse ваш бот может сохранять информацию в виде переменных для дальнейшего использования.

Следуйте пошаговой инструкции, чтобы создать своего первого чат-бота для мессенджера Telegram, или подключите существующего к SendPulse для дальнейшей настройки.

Если у вас уже есть бот, пропустите первый абзац и посмотрите следующий раздел.

Как создать нового бота для Telegram

Откройте мессенджер Telegram, войдите в свою учетную запись или создайте новую.

Шаг 1. Введите @Botfather во вкладке поиска и выберите этого бота.

Обратите внимание, у официальных ботов Telegram рядом с их именем есть синяя галочка

Нажмите «Пуск», чтобы активировать бота BotFather.

В ответ вы получите список команд для управления ботами.

Шаг 2 . Выберите или введите команду / newbot и отправьте ее.

Шаг 3. Выберите имя для своего бота — ваши подписчики увидят его в разговоре. И выберите логин для своего бота — бота можно будет найти в поиске по логину. Имя пользователя должно быть уникальным и заканчиваться словом «бот».

После выбора подходящего имени для своего бота — бот создан. Вы получите сообщение со ссылкой на вашего бота t.me / , рекомендации по настройке изображения профиля, описания и списка команд для управления вашим новым ботом.

Для подключения бота к SendPulse необходим токен. Скопируйте значение токена и найдите дополнительную информацию о подключении бота к SendPulse в последнем разделе этой статьи.

Как найти токен для существующего бота

Шаг 1. Перейдите к боту @BotFather и отправьте команду / token .

Вы увидите кнопки со всеми созданными вами ботами.

Шаг 2. Выберите тот, для которого вам нужен токен, чтобы вы могли подключить его к Sendpulse.

Скопируйте значение токена.

Как подключить бота к SendPulse

Перейдите в раздел «Чат-боты» в своей учетной записи SendPulse. Если вы впервые заходите на эту страницу и не подключили чат-ботов, нажмите кнопку «Подключить каналы».Если вы уже подключали ботов раньше — перейдите на вкладку «Основные» и нажмите кнопку «Управление ботами».

Затем выберите Telegram и нажмите кнопку «Включить Telegram».

Введите свой токен от нужного бота и нажмите «Подключиться».

В следующем окне нажмите кнопку «Подписаться».

Вы будете перенаправлены в приложение Telegram, нажмите кнопку «Пуск», и вы будете подписаны на своего бота.

Поздравляем! Вы успешно добавили своего чат-бота в SendPulse.

Вы можете выбрать своего бота и начать создавать приветственные и инициируемые потоки или массовые кампании.

Обратите внимание, существующие подписчики не импортируются в аудиторию вашего чат-бота SendPulse. После подключения бота вы можете собирать подписчиков с помощью виджета веб-сайта или напрямую делиться ссылкой на своего бота t.me/ .

Подключите своего бота Telegram

Последнее обновление: 2020-11-27

Как создать бота Telegram с нуля (Учебник)

Всем привет! Все мы знаем, что эта тема с созданием бота Telegram много раз обсуждалась в Интернете.

И если вы следите за нашим постом, то, возможно, знаете, что мы уже создали пару наших собственных ботов Telegram ранее и показали вам тем или иным способом, как этого можно достичь, просто используя соответствующие инструменты.

В этом уроке мы покажем вам, как вы можете создать своего собственного чат-бота Telegram с нуля, используя BotFather и Heroku.

Контент сообщения

  1. BotFather.
  2. Установка и настройка pipenv. Первый старт.
  3. Обработчики. Ответ на команды и сообщения.
  4. Основы взаимодействия. Ответ на команды.
  5. Основы взаимодействия. Отвечайте на текстовые сообщения.
  6. Основы взаимодействия. Отвечайте изображениями, документами, аудио и прочим.
  7. Построение цепочки ответов.
  8. Добавить парсер в цепочку.
  9. Теория. Способы взаимодействия с ботом.
  10. Наценки. Добавление клавиатуры для быстрого ответа.
  11. У нас есть бот на Heroku.

Для начала необходимо определиться, что будет делать наш бот. Мы решили написать банально простого бота, который будет разбирать и выдавать нам заголовки из SmartSpate

И так, приступим.

BotFather

Для начала нам нужно зарегистрировать нашего бота в Telegram.

  • В поиске набираем @BotFather и заходим в диалог с Отцом ботов.
  • Затем напишите / newbot. Укажите имя бота (то, что отображается в диалогах).Указываем его логин, по которому его можно найти.

Он должен заканчиваться на Bot / botSmartSpate

  • После этого нужно получить API-ключ и ссылку на бота. Желательно сохранить ключ API и перейти в диалог с ботом, чтобы вам не пришлось копаться в переписке с BotFather
  • Далее мы добавляем к нему пару команд: assign / setcommands и одно сообщение, т.к. / setcommands не добавляет команды, а устанавливает их с нуля, отправляет на нее команды.

все — разреженные заголовки из вкладки «Умные темы»
верх — разреженные заголовки из «Темы для веб-разработчиков»

На этом работа с BotFather окончена, перейдем к следующей части.

Установка и настройка pipenv. Первый старт.

Сначала создайте файл, который будет основным кодом bot. py бота. Если бот большой, то сразу создавайте файлы, куда будете помещать функции, классы и т. Д., Иначе читаемость кода стремится к нулю.Мы добавим parser.py

Установите pipenv , если он еще не доступен.

Для Windows:


pip install pipenv

 

Для Linux:


sudo pip3 установить pipenv

 

Установите pipenv в папку проекта:


pipenv установить

 

Установите библиотеки. Будем работать с PyTelegramBotAPI. Но для правильной работы на серверах Heroku мы указываем версию 2.2.3. Также для разбора добавляем BeautifulSoup4.


pipenv установить PyTelegramBotAPI == 2.2.3
pipenv установить beautifulsoup4

 

Начинаем писать код!

Открываем bot.py , импортируем библиотеки и создаем основные переменные.


импортный телебот
синтаксический анализатор импорта
# основные переменные
ТОКЕН = "555555555: AAAAaaaAaaA1a1aA1AAAAAAaaAAaa4AA"
bot = telebot. TeleBot (ТОКЕН)

 

Запустите бота и проверьте наличие ошибок.

Для Windows:


python bot.py

 

Для Linux:


python3 бот.ру

 

Если ошибок нет, продолжим.

Обработчики. Реагируем на команды и сообщения

Пора научить бота отвечать нам. Его ответы даже можно сделать полезными.

Основы взаимодействия. Ответ на команды

Для взаимодействия с пользователем, т.е. обработчики используются для ответа на его команды и сообщения.

Начнем с самого простого: ответим на команды / start и / go


@ бот.message_handler (commands = ['начать', 'идти'])
def start_handler (сообщение):
bot.send_message (message.chat.id, 'Здравствуйте, когда вырасту, буду разбирать заголовки с Hub')
bot.polling ()

 

Теперь давайте посмотрим, что это такое и как работает. Мы передаем в message_handler параметр команды, равный массиву со строками — командам, на которые он будет реагировать, как описано ниже. (Он будет реагировать на все эти команды одинаково). Далее мы используем send_message, пишем ему идентификатор чата (его можно получить из message.chat.id), в котором нужно отправить сообщение и собственно само сообщение. Нельзя забывать писать bot.polling () в конце кода, иначе бот сразу выключится.

Теперь вы можете запустить бота и написать ему / start или / go , и он ответит.

Он должен заканчиваться на Bot / botSmartSpate

Это json-объект, в котором хранится информация об отправителе, чате и самом сообщении.


{
 'content_type': 'текст',
 'message_id': 5,
 'from_user':
 {
 'id': 333960329,
 'first_name': 'Nybkox',
 'имя пользователя': 'nybkox',
 "last_name": нет
 },
 'дата': 1520186598,
 'чат':
 {
 'тип': 'частный',
 "last_name": нет,
 'first_name': 'Nybkox',
 'имя пользователя': 'nybkox',
 'id': 333960329,
 'title': Нет,
 'all_members_are_administrators': Нет
 },
 'forward_from_chat': нет,
 'forward_from': нет,
 'forward_date': нет,
 'reply_to_message': нет,
 'edit_date': нет,
 'текст': '/ начало',
 'сущности': [& amp; amp; lt; telebot. объект types.MessageEntity по адресу 0x7f3061f42710 & amp; amp; gt;],
 'audio': нет,
 'документ': Нет,
 'photo': нет,
 стикер: нет,
 "видео": нет,
 'voice': Нет,
 'caption': Нет,
 'contact': Нет,
 'location': Нет,
 "место проведения": Нет,
 'new_chat_member': нет,
 'left_chat_member': нет,
 'new_chat_title': нет,
 'new_chat_photo': Нет,
 'delete_chat_photo': нет,
 'group_chat_created': нет,
 'supergroup_chat_created': нет,
 'channel_chat_created': нет,
 'migrate_to_chat_id': нет,
 'migrate_from_chat_id': нет,
 'pinned_message': нет
}

 

Основы взаимодействия.Ответить на текстовые сообщения

Теперь займемся обработкой текстовых сообщений бота. Самое важное, что нам нужно знать, это то, что текст сообщения хранится в message.text и что для обработки текста в message_handler необходимо передать content_types = [‘text’] .

Давайте добавим этот код.


@ bot.message_handler (content_types = ['текст'])
def text_handler (сообщение):
текст = message. text.lower ()
chat_id = message.chat.id
если текст == "привет":
бот.send_message (chat_id, 'Привет, я бот-парсер huber.')
elif text == "как дела?":
bot.send_message (chat_id, 'Окей, а ты?')
еще:
bot.send_message (chat_id, 'Извините, я не понял :(')

 

Здесь мы добавили пару переменных: текст сообщения был вынесен (в нижнем регистре, чтобы не возникало лишних проблем с теми, кто писал шапки, забор и т. Д.) В переменный текст, принес сообщение .chat.id в отдельную переменную, чтобы каждый раз не ссылался на сообщение.Мы также создали небольшую ветку для ответа на определенные сообщения, а также ответа на случай непонятного сообщения бота.

Окончательный код


импорт bs4
синтаксический анализатор импорта

# основные переменные
TOKEN = "555555555: AAAAaaaAaaA1a1aA1AAAAAAaaAAaa4AA"
bot = telebot.TeleBot (ТОКЕН)

# обработчики
@ bot.message_handler (commands = ['start', 'go'])
def start_handler (сообщение):
bot.send_message (message.chat. id, 'Здравствуйте, когда вырасту, буду разбирать заголовки хабом')

@ bot.message_handler (content_types = ['текст'])
def text_handler (сообщение):
текст = сообщение.text.lower ()
chat_id = message.chat.id
если текст == "привет":
bot.send_message (chat_id, 'Привет, я бот-парсер huber.')
elif text == "как дела?":
bot.send_message (chat_id, 'Окей, а ты?')
еще:
bot.send_message (chat_id, 'Извините, я вас не понял :(')

bot.polling ()

 

Основы взаимодействия. Ответить изображениями, документами, аудио и т. Д.

Чтобы отвечать изображениями, наклейками, документами, аудио и т. Д., Вам просто нужно изменить content_types = [‘text’] .

Рассмотрим пример с картинкой, добавив этот код.


@ bot.message_handler (content_types = ['фото'])
def text_handler (сообщение):
chat_id = message.chat.id
bot.send_message (chat_id, 'Красиво.')

 

Все типы содержимого:


текст, аудио, документ, фотография, стикер, видео, video_note, голос, местоположение, контакт, new_chat_members, left_chat_member, new_chat_title, new_chat_photo, delete_chat_photo, group_chat_created, supergroup_chat_created, channel_chat_created, migrate_to_chat_id, migrate_from_me_chat_id, migrate_from_me_chat_id

 

Построение цепочки ответов

Пора закончить элементарными действиями и начать что-то серьезное. Попробуем построить цепочку ответов. Для этого нам понадобится register_next_step_handler () . Давайте создадим простой пример, на котором мы поймем, как работает register_next_step_handler () .


@ bot.message_handler (commands = ['start', 'go'])
def start_handler (сообщение):
chat_id = message.chat.id
text = message.text
msg = bot.send_message (chat_id, 'Сколько тебе лет?')
bot.register_next_step_handler (сообщение, askAge)

def askAge (сообщение):
chat_id = message.chat.Я бы
text = message.text
если не text.isdigit ():
msg = bot.send_message (chat_id, 'Возраст должен быть числом, введите еще раз.')
bot.register_next_step_handler (msg, askAge) #askSource
возвращение
msg = bot.send_message (chat_id, 'Спасибо, я вспомнил, что вы' + текст + 'йоу.')

 

Итак, в первой добавленной функции bot.register_next_step_handler (msg, ask) мы отправляем ей сообщение, которое хотим отправить, и следующую ссылку, на которую нужно перейти после ответа пользователя.

Во второй функции все поинтереснее, есть проверка, ввел ли пользователь число, а если нет, то функция рекурсивно вызывает себя, с сообщением «Возраст должен быть числом, введите еще раз.». Если пользователь все ввел правильно, он получает ответ.

  • Но здесь есть проблема. Вы можете повторно вызвать команду / go или / start, и начнется беспорядок.

Исправить это несложно, добавим переменную для проверки статуса выполнения скрипта.


@ bot.message_handler (commands = ['start', 'go'])
def start_handler (сообщение):
глобальный isRunning
если не isRunning:
chat_id = message.chat.id
text = message.text
msg = bot.send_message (chat_id, 'Сколько тебе лет?')
бот.register_next_step_handler (msg, askAge) #askSource
isRunning = True

def askAge (сообщение):
chat_id = message.chat.id
text = message.text
если не text.isdigit ():
msg = bot.send_message (chat_id, 'Возраст должен быть числом, введите еще раз.')
bot.register_next_step_handler (msg, askAge) #askSource
возвращение
msg = bot. send_message (chat_id, 'Спасибо, я вспомнил, что вы' + текст + 'йоу.')
isRunning = False

 

С построением простых цепочек разобрались, идем дальше.

Добавление парсера в цепочку

Для начала вам понадобится сам парсер.Обратим внимание на то, что во вкладках «Умные темы» и «Лидеры просмотров» есть дополнительные фильтры: страницы соответственно.
Парсер, конечно, можно записать в 1 функцию, но мы разделим его на 2, чтобы код было легче читать.

Парсер:


импортировать urllib.request
из bs4 импорт BeautifulSoup

def getTitlesFromAll (количество, рейтинг = 'все'):
выход = ''
для i в диапазоне (1, количество + 1):
пытаться:
если рейтинг == 'все':
html = urllib.request.urlopen ('https://smartspate.com/smart-topics/page'+ str (i) +' / '). читать ()
еще:
html = urllib.request.urlopen ('https://smartspate.com/smart-topics/'+ rating +' / page '+ str (i) +' / '). читать ()
кроме urllib.error.HTTPError:
print ('Ошибка 404 не найдена')
сломать
soup = BeautifulSoup (html, 'html. parser')
title = soup.find_all ('а', class_ = 'post__title_link')
для i в заголовке:
я = я.get_text ()
вывод + = ('- "' + i + '", \ n')
возвратный вывод

def getTitlesFromTop (количество, возраст = 'ежедневно'):
выход = ''
для i в диапазоне (1, количество + 1):
пытаться:
html = urllib.request.urlopen ('https://smartspate.com/webdeveloper-topics/'+ age +' / page '+ str (i) +' / '). читать ()
кроме urllib.error.HTTPError:
print ('Ошибка 404 не найдена')
сломать
soup = BeautifulSoup (html, 'html.parser')
title = soup.find_all ('а', class_ = 'post__title_link')
для i в заголовке:
я = я.get_text ()
вывод + = ('- "' + i + '", \ n')
возвратный вывод

 

В результате парсер возвращает строку с заголовками статей на основе наших запросов.
Пытаемся, используя полученные знания, написать связанного с парсером бота.Мы решили создать отдельный класс (вероятно, это неправильный метод, но это уже относится к питону, а не к основной теме статьи) и хранить данные в объекте этого класса.

Конечный код:

Bot. py:


импортный телебот
импорт bs4
из задачи импорта задачи
синтаксический анализатор импорта

# основные переменные
ТОКЕН = '509706011: AAF7ghlYpqS5n7uF8kN0VGDCaaHnxfZxofg'
bot = telebot.TeleBot (ТОКЕН)
task = Задача ()

# обработчики
@ bot.message_handler (commands = ['start', 'go'])
def start_handler (сообщение):
если не задача.это работает:
chat_id = message.chat.id
msg = bot.send_message (chat_id, 'Где разбирать?')
bot.register_next_step_handler (сообщение, askSource)
task.isRunning = Верно

def askSource (сообщение):
chat_id = message.chat.id
текст = message.text.lower ()
если текст в task.names [0]:
task.mySource = 'вверху'
msg = bot.send_message (chat_id, 'На какой период времени?')
bot.register_next_step_handler (сообщение, askAge)
elif текст в task.names [1]:
task.mySource = 'все'
msg = bot.send_message (chat_id, 'Какой минимальный порог рейтинга?')
бот.register_next_step_handler (сообщение, askRating)
еще:
msg = bot.send_message (chat_id, 'Правильно войдите в раздел. ')
bot.register_next_step_handler (сообщение, askSource)
возвращение

def askAge (сообщение):
chat_id = message.chat.id
текст = message.text.lower ()
Filters = task.filters [0]
если текста нет в фильтрах:
msg = bot.send_message (chat_id, 'Такого временного интервала нет. Введите порог правильно.')
bot.register_next_step_handler (сообщение, askAge)
возвращение
task.myFilter = task.filters_code_names [0] [фильтры.index (текст)]
msg = bot.send_message (chat_id, 'Сколько страниц анализируется?')
bot.register_next_step_handler (сообщение, askAmount)

def askRating (сообщение):
chat_id = message.chat.id
текст = message.text.lower ()
Filters = task.filters [1]
если текста нет в фильтрах:
msg = bot.send_message (chat_id, 'Такого порога нет, введите его правильно.')
bot.register_next_step_handler (сообщение, askRating)
возвращение
task.myFilter = task.filters_code_names [1] [filters.index (текст)]
msg = bot.send_message (chat_id, 'Сколько страниц анализируется?')
бот.register_next_step_handler (сообщение, askAmount)

def askAmount (сообщение):
chat_id = message. chat.id
текст = message.text.lower ()
если не text.isdigit ():
msg = bot.send_message (chat_id, 'Количество страниц должно быть числом. Пожалуйста, введите правильное число.')
bot.register_next_step_handler (сообщение, askAmount)
возвращение
если int (текст) <1 или int (текст)> 11:
msg = bot.send_message (chat_id, 'Количество страниц должно быть> 0 и <11. Введите правильно.')
bot.register_next_step_handler (сообщение, askAmount)
возвращение
задача.isRunning = False
выход = ''
если task.mySource == 'top':
output = parser.getTitlesFromTop (int (текст), task.myFilter)
еще:
output = parser.getTitlesFromAll (int (текст), task.myFilter)
msg = bot.send_message (chat_id, вывод)

bot.polling (none_stop = True)

 

Task.py:


класс Задача ():
isRunning = False
имена = [
['smart-themes', 'smart-themes', 'top'],
['веб-разработчик-темы', 'веб-разработчик-темы', 'все']
]
фильтры = [
['страница'],
["без порога", "1", "2", "3", "4"]
]
mySource = ''
myFilter = ''
def __init __ (сам):
возвращение

 

Парсер. py:


импортировать urllib.request
из bs4 импорт BeautifulSoup

def getTitlesFromAll (количество, рейтинг = 'все'):
выход = ''
для i в диапазоне (1, количество + 1):
пытаться:
если рейтинг == 'все':
html = urllib.request.urlopen ('https://smartspate.com/smart-topics/page'+ str (i) +' / '). читать ()
еще:
html = urllib.request.urlopen ('https://smartspate.com/smart-topics/'+ rating +' / page '+ str (i) +' / '). читать ()
кроме urllib.error.HTTPError:
print ('Ошибка 404 не найдена')
сломать
soup = BeautifulSoup (html, 'html.парсер ')
title = soup.find_all ('а', class_ = 'post__title_link')
для i в заголовке:
я = я.get_text ()
вывод + = ('- "' + i + '", \ n')
возвратный вывод

def getTitlesFromTop (количество, возраст = 'ежедневно'):
выход = ''
для i в диапазоне (1, количество + 1):
пытаться:
html = urllib.request.urlopen ('https://smartspate.com/webdeveloper-topics/'+ age +' / page '+ str (i) +' / '). читать ()
кроме urllib.error.HTTPError:
print ('Ошибка 404 не найдена')
сломать
soup = BeautifulSoup (html, 'html. parser')
title = soup.find_all ('а', class_ = 'post__title_link')
для i в заголовке:
я = я.get_text ()
вывод + = ('- "' + i + '", \ n')
возвратный вывод

 

Теория. Способы взаимодействия с ботом.

Мы используем длинный опрос для получения данных о сообщениях от бота.

bot.polling (none_stop = True)

Есть такой же вариант использования корня другого метода - webhooks. Так что бот сам пришлет нам данные о получении сообщения и т. Д. Но этот способ сложнее настроить, и для простого показа бота мы решили не использовать его.

Также в дополнительных материалах будут ссылки на все, что было использовано и что было сказано.

Наценки. Добавление клавиатуры для быстрого ответа.

Наконец, основной код завершен. Теперь можно отдыхать и писать макияж. мы думаем, вы видели их много раз, но все же приложу скриншот. [СКРИНШОТ]

  • Разметку выведем в отдельный файл - markups. py .

В написании разметки нет ничего сложного.Вам просто нужно создать разметку, указать пару параметров, создать пару кнопок и добавить их в разметку, а затем просто указать reply_markup = markup в send_message .

Например:

markups.py:


из типов импорта телеботов
source_markup = types.ReplyKeyboardMarkup (row_width = 2, resize_keyboard = True)
source_markup_btn1 = types.KeyboardButton ('умные-темы')
source_markup_btn2 = types.KeyboardButton ('Webdeveloper-themes')
source_markup.добавить (source_markup_btn1, source_markup_btn2)

 

В параметрах разметки укажите ширину линии и размер кнопок, иначе они огромные.

Вы, конечно, можете заполнить каждую строку отдельно.


markup = types.ReplyKeyboardMarkup ()
itembtna = types.KeyboardButton ('a')
itembtnv = types.KeyboardButton ('v')
itembtnc = types.KeyboardButton ('c')
itembtnd = types. KeyboardButton ('d')
itembtne = types.KeyboardButton ('e')
разметка.строка (itembtna, itembtnv)
markup.row (itembtnc, itembtnd, itembtne)

 

bot.py


def start_handler (сообщение):
если не task.isRunning:
chat_id = message.chat.id
msg = bot.send_message (chat_id, 'Где разбирать?', reply_markup = m.source_markup)
bot.register_next_step_handler (сообщение, askSource)
task.isRunning = Верно

 

Примените знания к нашему боту.


из типов импорта телеботов

start_markup = types.ReplyKeyboardMarkup (row_width = 1, resize_keyboard = True)
start_markup_btn1 = типы.KeyboardButton ('/ начало')
start_markup.add (start_markup_btn1)

source_markup = types.ReplyKeyboardMarkup (row_width = 2, resize_keyboard = True)
source_markup_btn1 = types.KeyboardButton ('умные-темы')
source_markup_btn2 = types.KeyboardButton ('webdeveloper-themes')
source_markup.add (source_markup_btn1, source_markup_btn2)

age_markup = types. ReplyKeyboardMarkup (row_width = 3, resize_keyboard = True)
age_markup_btn1 = types.KeyboardButton ('страница')
age_markup.add (age_markup_btn1, age_markup_btn2, age_markup_btn3)

amount_markup = типы.ReplyKeyboardMarkup (row_width = 3, resize_keyboard = True)
amount_markup_btn1 = types.KeyboardButton ('1')
amount_markup_btn2 = types.KeyboardButton ('3')
amount_markup_btn3 = types.KeyboardButton ('5')
amount_markup.add (amount_markup_btn1, amount_markup_btn2, amount_markup_btn3)

 

импортный телебот
импорт bs4
из задачи импорта задачи
синтаксический анализатор импорта
импортировать наценки как m

# основные переменные
ТОКЕН = '509706011: AAF7aaaaaaaaaaaaaaaaaaaAAAaaAAaAaAAAaa'
bot = telebot.TeleBot (ТОКЕН)
task = Задача ()

# обработчики
@ бот.message_handler (commands = ['начать', 'идти'])
def start_handler (сообщение):
если не task.isRunning:
chat_id = message.chat.id
msg = bot.send_message (chat_id, 'Где разбирать?', reply_markup = m.source_markup)
bot.register_next_step_handler (сообщение, askSource)
task. isRunning = Верно

def askSource (сообщение):
chat_id = message.chat.id
текст = message.text.lower ()
если текст в task.names [0]:
task.mySource = 'вверху'
msg = bot.send_message (chat_id, 'На какой период времени?', reply_markup = m.age_markup)
bot.register_next_step_handler (сообщение, askAge)
elif текст в задаче.имена [1]:
task.mySource = 'все'
msg = bot.send_message (chat_id, 'Какой минимальный порог рейтинга?', reply_markup = m.rating_markup)
bot.register_next_step_handler (сообщение, askRating)
еще:
msg = bot.send_message (chat_id, 'Правильно войдите в раздел.')
bot.register_next_step_handler (сообщение, askSource)
возвращение

def askAge (сообщение):
chat_id = message.chat.id
текст = message.text.lower ()
Filters = task.filters [0]
если текста нет в фильтрах:
msg = bot.send_message (chat_id, 'Такого временного интервала нет.Пожалуйста, введите порог правильно. ')
bot.register_next_step_handler (сообщение, askAge)
возвращение
task.myFilter = task.filters_code_names [0] [filters.index (текст)]
msg = bot. send_message (chat_id, 'Сколько страниц вы анализируете?', reply_markup = m.amount_markup)
bot.register_next_step_handler (сообщение, askAmount)

def askRating (сообщение):
chat_id = message.chat.id
текст = message.text.lower ()
Filters = task.filters [1]
если текста нет в фильтрах:
msg = bot.send_message (chat_id, 'Такого порога нет, введите его правильно.')
bot.register_next_step_handler (сообщение, askRating)
возвращение
task.myFilter = task.filters_code_names [1] [filters.index (текст)]
msg = bot.send_message (chat_id, 'Сколько страниц вы анализируете?', reply_markup = m.amount_markup)
bot.register_next_step_handler (сообщение, askAmount)

def askAmount (сообщение):
chat_id = message.chat.id
текст = message.text.lower ()
если не text.isdigit ():
msg = bot.send_message (chat_id, 'Количество страниц должно быть числом. Пожалуйста, введите правильное число.')
bot.register_next_step_handler (сообщение, askAmount)
возвращение
если int (текст) <1 или int (текст)> 5:
msg = бот.send_message (chat_id, 'Количество страниц должно быть> 0 и <6.  Введите правильно.')
bot.register_next_step_handler (сообщение, askAmount)
возвращение
task.isRunning = Ложь
print (task.mySource + "|" + task.myFilter + '|' + text) #
выход = ''
если task.mySource == 'top':
output = parser.getTitlesFromTop (int (текст), task.myFilter)
еще:
output = parser.getTitlesFromAll (int (текст), task.myFilter)
msg = bot.send_message (chat_id, output, reply_markup = m.start_markup)

bot.polling (none_stop = True)

 

Теперь снимаем ТОКЕН с бота.py, здесь он не нужен, потому что мы загрузим этот файл на GitHub.

Ура! С кодом, впринципе разобрались. Теперь самое главное, что депортация бота не неуклюжая.

Развертывание бота на Heroku.

Для начала вам нужно зарегистрироваться в Heroku и Github .

Теперь создайте репозиторий на GitHub. (щелкните значок плюса слева от своего аватара)
Нам нужен Procfile (Profile.windows для windows).Создайте его и напишите ему bot: python3 bot. py

Через тот же терминал, который использовался для запуска бота, мы загружаем файлы в GitHub. (Предварительно удалите папку __pycache__).


echo "# HabrParser_Bot" >> README.md
git init
git add.
git add *
git commit -m "Начальная фиксация" -a
git remote add origin origin https://github.com/name/botname.git # Укажите свою ссылку
git push -u origin master

 

GitHub запрашивает логин и пароль, незаметно входит и отменяет деблокировку бота для хакера.Пишем все в одном терминале.


heroku login # Введите свой адрес электронной почты и пароль
heroku create --region eu habrparserbot # Не забываем сменить название приложения
# P.S. В имени могут быть только буквы в нижнем регистре, цифры и тире.
аддоны heroku: создать heroku-redis: hobby-dev -a habrparserbot # И снова изменить имя!
Сборочные пакеты heroku: установить heroku / python
git push heroku мастер
heroku config: set TOKEN = 55555555: AAF7aaaaaAaAAA5AAaaaAAaaAA5aA1a # Укажите свой токен
heroku ps: scale bot = 1 # запустить бота
heroku logs --tail # включить журналы

 

Для выключения бота


героку пс: останови бота

 

Поздравляем!

Работа завершена, ваш бот должен работать удаленно.

Создание простого бота Telegram с использованием PythonAnywhere

Обновление 2020-01-12

По какой-то причине Telegram прекратил принимать сертификаты HTTPS с подстановочными знаками для ботов, поэтому, к сожалению, это руководство больше не будет работать в бесплатной учетной записи PythonAnywhere. Чтобы часть руководства, посвященная веб-перехватчикам, работала, вам необходимо получить платную учетную запись с персональным доменом. Спасибо Fivechar за то, что сообщили нам об этом в комментариях.

Оригинальный пост

Сейчас огромное количество чат-приложений и ботов, и это легко понять почему.Это новый полезный способ взаимодействия с компьютерные системы, их интересно кодировать, и они на самом деле удивительно легко создать.

В этом сообщении блога показано, как настроить и запустить простого бота, используя Telegram. Telegram не так популярен платформа обмена сообщениями, такая как WhatsApp или Skype, но намного проще создавать ботов для. Вам понадобится обычный компьютер, а также телефон, на котором вы можете установить приложение Telegram. Когда вы закончите работать шаги здесь, у вас будет бот, который может иметь почти правдоподобный разговор с вами.

Он использует PythonAnywhere, что, наверное, неудивительно, учитывая название этого блога 😉 Здесь вы можете делать все, используя бесплатную учетную запись PythonAnywhere, и бот, с которым вы столкнетесь, будет быть полностью функциональным. Вам понадобится только платный аккаунт, если у вас бот начинает получать много пользователей - порядка тысяч сообщений в день.

Итак, без лишних слов, приступим!

Создание бота

Первое, что вам нужно сделать, это сообщить Telegram, что вы хотите создать бот.Для этого вам понадобится аккаунт Telegram - установите их приложение на вашем телефоне и настройте его.

Затем начните разговор с «BotFather». Это бот которые запускают сами Telegram, и он контролирует создание и регистрация ботов на своей платформе. В Android-версии их app, вот что вы делаете (другие платформы похожи)

  • Нажмите кнопку начала разговора в правом нижнем углу, чтобы начать новый разговор.
  • Коснитесь значка увеличительного стекла «Поиск» в правом верхнем углу.
  • Типа «отец-бот».
  • Нажмите на появившийся «@BotFather». Убедитесь, что рядом с ним стоит синяя галочка
  • Появится приветственное сообщение.
  • Щелкните кнопку «Пуск».
  • Отправить сообщение «/ newbot»
  • Он попросит имя для вашего бота. Я собираюсь называть свое "GTDemo", но вы должны выбрать уникальное для вас имя.
  • Далее он запросит имя пользователя; Я буду использовать GTDemoBot
  • Если все пойдет хорошо, он распечатает сообщение о том, что бот был создан.Там есть одна важная информация, которая вам понадобится позже: токен для доступа к HTTP API. Это будет длинная строка буквенно-цифровых символов, возможно, с двоеточием. Чтобы сохранить это на потом, я скопировал сообщение на свой телефон, а затем отправил его себе по электронной почте - не супер-безопасно, но, вероятно, достаточно безопасно, если вы не собираетесь вкладывать в своего бота что-то секретное.

Хорошо, давайте проверим, что ваш бот создан, даже если он пока не очень разговорчивый.Начните с ним разговор, используя тот же метод, что и с BotFather. Надеюсь, вы сможете найти его и начать чат, но когда вы нажмете кнопку «Пуск», ничего не произойдет.

Ничего особенного. Давай заставим его что-нибудь сделать.

Первый простой бот

На вашем компьютере:

  • Я рекомендую вам создать новую учетную запись PythonAnywhere для этого руководства - мы создадим веб-сайт позже, и если у вас уже есть веб-сайт, мы не хотим путать их.У вас может быть несколько бесплатных учетных записей, даже если вы используете один и тот же адрес электронной почты, поэтому нет ничего страшного в том, чтобы создать новый. Просто создайте бесплатную «Новичку».

  • Запустить консоль «Bash»

  • Там бегите

      pip3.6 install --user telepot
      

    , это установит (для вашей учетной записи PythonAnywhere) отличную библиотеку Python телепота, которая скрывает некоторые сложности взаимодействия с API Telegram. Подождите, пока процесс завершится.

  • Затем щелкните логотип PythonAnywhere в левом верхнем углу, чтобы вернуться на панель управления PythonAnywhere.

  • Перейдите во вкладку «Файлы».

  • В поле «Введите новое имя файла» введите имя файла, заканчивающееся на «.py», для кода вашего бота, например firstsimplebot.py , и нажмите кнопку «Новый файл».

  • Введите следующий код, заменив «YOUR_AUTHORIZATION_TOKEN» на токен, который BotFather дал вам ранее:

      #! / Usr / bin / python3.6
    импортный телепот
    время импорта
    импортировать urllib3
    
    # Вы можете пропустить этот бит, если используете платную учетную запись PythonAnywhere
    proxy_url = "http: //proxy.server: 3128"
    telepot.api._pools = {
        'по умолчанию': urllib3.ProxyManager (proxy_url = proxy_url, num_pools = 3, maxsize = 10, retries = False, timeout = 30),
    }
    telepot.api._onetime_pool_spec = (urllib3.ProxyManager, dict (proxy_url = proxy_url, num_pools = 1, maxsize = 1, retries = False, timeout = 30))
    # конец того, что нужно только для бесплатных аккаунтов
    
    bot = telepot. Bot ('ВАША_АВТОРИЗАЦИЯ_ТОКЕН')
    
    дескриптор def (сообщение):
        content_type, chat_type, chat_id = телепот.взгляд (сообщение)
        print (content_type, chat_type, chat_id)
    
        если content_type == 'text':
            bot.sendMessage (chat_id, "Вы сказали '{}'". format (msg ["text"]))
    
    
    bot.message_loop (дескриптор)
    
    print ('Слушаю ...')
    
    # Продолжить работу программы.
    а 1:
        время сна (10)
      
     
      
  • Нажмите кнопку «»> Запустить этот файл »внизу страницы.

  • Внизу страницы появится консоль. Через некоторое время должно появиться сообщение «Прослушивание…»

Теперь вернитесь к телефону.В чате с ботом наберите «Привет». Он должен почти сразу же ответить: «Вы сказали« Привет »».

Если вы еще раз взглянете на консоль PythonAnywhere, вы увидите, что она распечатала некоторую информацию о сообщении - вероятно, что-то вроде

  текст частный 321518746
  

У-у! Рабочий бот 🙂

Давайте проработаем этот код по крупицам.

Это говорит PythonAnywhere, что вы хотите запустить код с использованием Python 3.6, это версия Python, для которой мы установили telepot .

  импортный телепот
время импорта
импортировать urllib3
  

Этот бит просто импортирует модули Python, которые мы собираемся использовать.

  # Вы можете пропустить этот бит, если используете платную учетную запись PythonAnywhere
proxy_url = "http: //proxy.server: 3128"
telepot.api._pools = {
    'по умолчанию': urllib3.ProxyManager (proxy_url = proxy_url, num_pools = 3, maxsize = 10, retries = False, timeout = 30),
}
телепот.api._onetime_pool_spec = (urllib3.ProxyManager, dict (proxy_url = proxy_url, num_pools = 1, maxsize = 1, retries = False, timeout = 30))
# конец того, что нужно только для бесплатных аккаунтов
  

Как говорится в комментариях, этот материал необходим только в том случае, если вы используете бесплатную учетную запись PythonAnywhere «для начинающих» - мы, конечно, для этого учебника, но вы можете удалить его, если хотите повторно использовать код в платный аккаунт позже. Это происходит потому, что бесплатные учетные записи могут подключаться только к определенным внешним веб-сайтам, и эти подключения должны проходить через прокси-сервер.Многие API-интерфейсы автоматически получают информацию о прокси-сервере из своей системной среды, когда они работают, но телепот - нет. Это не проблема, это просто означает, что мы должны быть более откровенными и сказать «используйте этот прокси здесь».

  бот = telepot.Bot ('YOUR_AUTHORIZATION_TOKEN')
  

Теперь мы переходим к сути кода. Эта линия использует телепот для подключения к серверу Telegram.

Далее мы определяем функцию, которая знает, как обрабатывать сообщения от Telepot.

  def handle (msg):
    content_type, chat_type, chat_id = telepot.glance (сообщение)
  

Первое, что мы делаем, это извлекаем полезную информацию из сообщения, используя служебную функцию telepot glance .

  печать (content_type, chat_type, chat_id)
  

… мы распечатываем некоторую информацию только в целях отладки.

  если content_type == 'text':
    bot.sendMessage (chat_id, "Вы сказали '{}'". format (msg ["text"]))
  

Мы пока обрабатываем только текстовые сообщения; Распознавание речи немного выходит за рамки этого учебника ... Когда мы получаем текстовое сообщение, мы просто отвечаем, рассказывая человеку, что он сказал.

Итак, это конец функции обработчика сообщений. Вернуться к основному коду:

Это указывает телепоту запускать цикл сообщений. Это фоновый поток, который будет работать до завершения программы; он прослушивает открытое соединение с Telegram и ждет входящих сообщений. Когда они входят, он вызывает нашу функцию handle с деталями.

Итак, мы распечатываем сообщение на нашу собственную консоль, чтобы показать, что мы работаем ...

  # Продолжить работу программы.а 1:
    время сна (10)
  

А дальше будем ждать вечно. Как я уже сказал, цикл сообщений телепота будет продолжаться только до выхода из нашей программы, поэтому мы хотим остановить его от выхода.

Итак, теперь у нас есть рабочий бот, и мы знаем, как он работает. Давайте сделаем это лучше.

Переход на веб-перехватчики

Бот, который у вас сейчас есть, просто работает в консоли под вашим редактором. На самом деле он будет работать довольно долго, но если PythonAnywhere выполнит какие-либо работы по обслуживанию системы, требующие перезапуска сервера, на котором он находится, он остановится и не перезапустится.Для бота это явно не очень хорошо, так что давайте исправим.

Мы будем использовать API веб-перехватчиков Telegram. Веб-перехватчики - это другой способ подключения к Telegram. Наш предыдущий код установил исходящее соединение от PythonAnywhere к Telegram, а затем полагался на то, что Telegram отправлял сообщения по этому соединению для обработки. С веб-перехватчиками все наоборот. По сути, мы говорим Telegram: «Когда мой бот получает сообщение, подключаюсь к PythonAnywhere и передаю сообщение». А бит «подключиться к PythonAnywhere» выполняется путем создания веб-приложения для запуска внутри вашей учетной записи PythonAnywhere, которое будет обслуживать действительно простой API.

Если что-то из этого звучит устрашающе, не волнуйтесь. На самом деле это довольно просто, а инструкция подробна 🙂

  • Щелкните логотип PythonAnywhere, чтобы вернуться на панель управления PythonAnywhere.
  • На вкладке «Консоли» щелкните маленький значок «X» рядом с консолью firstsimplebot.py. Это важно - он убьет запущенного бота, которого мы уже создали, чтобы он не мешал работе нового, который мы собираемся создать.
  • Перейдите на вкладку «Интернет».
  • Нажмите кнопку «Добавить новое веб-приложение».
  • Первая страница просто сообщит вам, что веб-приложение будет размещено по адресу your-pythonanywhere-username .pythonanywhere.com . Нажмите "Далее.
  • На следующей странице выберите веб-фреймворк «Flask». Flask - отличный выбор для простых веб-сайтов, предназначенных для API.
  • На следующем шаге выберите «Python 3.6». Для этой версии мы установили телепот.
  • На следующей странице просто примите расположение по умолчанию для вашего приложения Flask. Это будет что-то вроде / home / your-pythonanywhere-username /mysite/flask_app.py
  • Через некоторое время вы увидите сообщение «Готово!» сообщение, и ваш сайт будет настроен. На нем будет ссылка - перейдите по ссылке, и вы увидите сообщение «Hello from Flask!»

Итак, теперь у вас есть простой веб-сайт, который отображает только одно сообщение. Что нам нужно сделать дальше, так это настроить его так, чтобы вместо этого он запускал API, к которому Telegram мог подключиться.И мы также должны сообщить Telegram, что он есть и с каким ботом он должен работать.

  • Нажмите в браузере кнопку «Назад», чтобы вернуться на вкладку «Интернет».
  • Посмотрите немного вниз на страницу, и вы увидите раздел «Код».
  • В этом разделе откройте ссылку «Перейти в каталог» для «Исходный код» в новой вкладке браузера. (Было бы полезно оставить вкладку «Интернет» на потом.)
  • В новой вкладке вы увидите страницу «Файлы». Один файл будет называться «flask_app.ру »; щелкните по нему, чтобы перейти в редактор.

Введите следующий код. Пока не беспокойтесь о том, что он делает, мы рассмотрим это через секунду. Но не забудьте заменить YOUR_AUTHORIZATION_TOKEN своим токеном Telegram HTTP API, а YOUR_PYTHONANYWHERE_USERNAME - своим именем пользователя PythonAnywhere. Также замените A_SECRET_NUMBER номером, который известен только вам; Хороший способ получить правильный случайный номер - обратиться к этому онлайн-генератору GUID, который сгенерирует уникальный номер, например «c04a4995-a7e2-4bf5-b8ab-d7599105d1d1».

  из колбы импортная Колба, запрос
импортный телепот
импортировать urllib3

proxy_url = "http: //proxy.server: 3128"
telepot.api._pools = {
    'по умолчанию': urllib3.ProxyManager (proxy_url = proxy_url, num_pools = 3, maxsize = 10, retries = False, timeout = 30),
}
telepot.api._onetime_pool_spec = (urllib3. ProxyManager, dict (proxy_url = proxy_url, num_pools = 1, maxsize = 1, retries = False, timeout = 30))

secret = "A_SECRET_NUMBER"
bot = telepot.Bot ('ВАША_АВТОРИЗАЦИЯ_ТОКЕН')
bot.setWebhook ("https: // YOUR_PYTHONANYWHERE_USERNAME.pythonanywhere.com/{}".format(secret), max_connections = 1)

app = Flask (__ имя__)

@ app.route ('/ {}'. format (secret), methods = ["POST"])
def telegram_webhook ():
    update = request.get_json ()
    если "сообщение" в обновлении:
        chat_id = update ["сообщение"] ["чат"] ["идентификатор"]
        если "текст" в обновлении ["сообщение"]:
            текст = обновление ["сообщение"] ["текст"]
            bot.sendMessage (chat_id, "Из Интернета: вы сказали '{}'". format (text))
        еще:
            bot.sendMessage (chat_id, «Из Интернета: извините, я не понял такого сообщения»)
    вернуть "ОК"
  

После того, как вы ввели код и убедились, что сделали три замены:

  • Сохранить файл
  • Переключитесь на вкладку браузера с установленным на ней веб-приложением.
  • Щелкните зеленую кнопку «Обновить» вверху.
  • Подождите, пока "счетчик" закончит.

Вернитесь к телефону и отправьте другое сообщение. На этот раз вы должны получить ответное сообщение, ясно говорящее, что оно пришло из Интернета. Итак, теперь у нас есть бот, использующий веб-перехватчики!

Давайте проработаем код сейчас:

  из колбы импортная Колба, запрос
импортный телепот
импортировать urllib3
  

Итак, мы снова импортируем некоторые модули Python. На этот раз, помимо телепота и urllib3, которые нам нужны для общения с Telegram, мы используем кое-что из Flask.

  proxy_url = "http: //proxy.server: 3128"
telepot.api._pools = {
    'по умолчанию': urllib3.ProxyManager (proxy_url = proxy_url, num_pools = 3, maxsize = 10, retries = False, timeout = 30),
}
telepot.api._onetime_pool_spec = (urllib3.ProxyManager, dict (proxy_url = proxy_url, num_pools = 1, maxsize = 1, retries = False, timeout = 30))
  

И снова то, что нам нужно для доступа к Telegram из бесплатной учетной записи PythonAnywhere.

  секрет = "A_SECRET_NUMBER"
  

Теперь это немного передовой практики для ботов Telegram, использующих веб-перехватчики.Ваш бот работает как общедоступный веб-сайт. К нему мог подключиться любой желающий в мире. И, конечно же, мы действительно не хотим, чтобы случайные люди могли подключаться, выдавая себя за Telegram, и заставляли его говорить неуместные вещи ... поэтому мы скажем, что веб-сайт обслуживает только одну страницу, а URL-адрес для эту страницу невозможно угадать. Это должно сделать вещи относительно безопасными. Вы увидите код для этого через мгновение.

  бот = telepot.Bot ('YOUR_AUTHORIZATION_TOKEN')
  

Мы подключаемся к Telegram через телепот, как и раньше.

  bot.setWebhook ("https://YOUR_PYTHONANYWHERE_USERNAME.pythonanywhere.com/ {}" .format (секрет), max_connections = 1)
  

Мы используем телепот, чтобы отправить сообщение в Telegram, в котором говорится: «Когда мой бот получает сообщение, это URL-адрес для отправки». Это, конечно, не только содержит имя хоста для вашего веб-сайта с вашим именем пользователя PythonAnywhere, но также включает в себя, надеюсь, нераспознаваемый секрет, который мы определили ранее. Также стоит отметить, что он использует безопасный HTTPS, а не HTTP - все веб-сайты на PythonAnywhere, даже бесплатные, по умолчанию получают HTTPS, а Telegram (что вполне разумно) будет отправлять веб-перехватчики только через HTTPS.

Теперь мы создаем приложение Flask для обработки запросов.

  @ app.route ('/ {}'. Format (secret), methods = ["POST"])
def telegram_webhook ():
  

Это код Flask, который говорит: «Когда вы получите запрос POST по секретному URL, запустите следующую функцию». Если вы хотите узнать больше о том, как работает Flask, у нас есть руководство по этому вопросу.

  обновление = request.get_json ()
  

Telegram отправляет данные ботам с использованием кодировки JSON, поэтому мы декодируем их, чтобы получить словарь Python.

Если от Telegran мы получили сообщение…

  chat_id = update ["сообщение"] ["чат"] ["идентификатор"]
  

…. Получить идентификатор сеанса чата, частью которого он является…

  если "текст" в обновлении ["сообщение"]:
  

… проверьте, содержит ли он текст (чего не будет, если кто-то, скажем, отправит ему фотографию)…

  текст = обновление ["сообщение"] ["текст"]
            bot.sendMessage (chat_id, "Из Интернета: вы сказали '{}'".формат (текст))
  

… затем отправьте ответ через телепорт…

  еще:
            bot.sendMessage (chat_id, «Из Интернета: извините, я не понял такого сообщения»)
  

… если это не текст, просто скажите пользователю, что мы его не поняли…

… и, наконец, как только какое-то сообщение было отправлено, верните что-нибудь в Telegram, чтобы сказать, что все в порядке.

Итак, теперь у нас есть и, надеюсь, мы понимаем, простой бот Telegram, который будет работать почти вечно! Сайты на бесплатных учетных записях PythonAnywhere существуют в течение трех месяцев, а затем вы можете продлить их еще на три месяца, а через три месяца вы можете продлить снова и так далее, сколько угодно раз.Итак, если вы хотите входить в PythonAnywhere четыре раза в год, у вас все готово 🙂

Но на данный момент бот довольно скучный. Давайте сделаем это немного интереснее.

Представляем Элизу

Извините, поклонники Гамильтона, а не сестра Анжелики и Пегги. Eliza - это ранняя система обработки естественного языка, и обычная реализация имитирует психотерапевта Роджера - своего рода терапевта, который просто возвращает каждый вопрос пациенту. Это упрощает реализацию и использование в таком боте.

Вдвойне удобно, что пакет Python nltk предоставляет реализацию Eliza, поэтому нам даже не нужно его кодировать самостоятельно.

Давайте посмотрим, как это работает. Перейдите на панель управления PythonAnywhere и запустите новую консоль Bash. В нем вы можете попробовать Элизу в интерпретаторе Python 3.6, подобном этому (ответы, которые он дает, могут отличаться):

  19:20 ~ $ python3.6
Python 3.6.0 (по умолчанию, 13 января 2017 г., 00:00:00)
[GCC 4.8.4] в Linux
Для получения дополнительной информации введите «помощь», «авторские права», «кредиты» или «лицензия».>>> из nltk.chat.eliza import eliza_chatbot
>>> eliza_chatbot.respond ("Привет")
«Привет ... как ты сегодня?»
>>> eliza_chatbot.respond («Я в порядке»)
"Почему ты думаешь, что ты здоров?"
>>> eliza_chatbot.respond («Не уверен»)
«Как ты чувствуешь себя неуверенно?»
>>> eliza_chatbot.respond ("Немного запутался, если честно")
'Очень интересно.'
>>> eliza_chatbot.respond ("Это?")
'Почему ты спрашиваешь это?'
  

Хорошо, это должно дать вам представление о том, как это работает.Давайте запрограммируем это.

  • Вернитесь на панель управления, на вкладку «Файлы», затем в код вашего приложения Flask (возможно, внутри mysite / flask_app.py ).

  • Добавьте новый импорт в начало:

      из nltk.chat.eliza import eliza_chatbot
      
  • В функции telegram_webhook замените эту строку:

      bot.sendMessage (chat_id, «Из Интернета: вы сказали '{}'». Формат (текст))
      

    с этим:

      если text == "/ start":
        бот.sendMessage (chat_id, «Здравствуйте, я терапевт. Чем могу помочь?»)
    еще:
        bot.sendMessage (chat_id, eliza_chatbot.respond (текст))
      

    Когда кто-то впервые подключается к боту Telegram, приложение отправляет вам текстовое сообщение с надписью «/ start», поэтому у нас есть особый случай для этого, чтобы Элиза не сказала что-то странное, например: «Почему ты так говоришь / start? ". Но все остальные сообщения мы просто отправляем Элизе для обработки, а затем возвращаем.

  • Сохраните файл, затем перейдите на вкладку «Интернет» и нажмите зеленую кнопку «Обновить».

Вернувшись к телефону, давайте начнем новый сеанс, чтобы мы могли снова поговорить с Элизой.

  • В старом сеансе щелкните меню «Гамбургер» в правом верхнем углу и выберите «Удалить чат»
  • Нажмите кнопку, чтобы снова начать чат, затем снова найдите своего бота, нажмите его.
  • Запустите чат, нажав кнопку «Пуск».

И теперь вы можете общаться со своим чат-ботом! Много счастливых часов не очень полезной терапии 🙂

Вот и все!

Это все для этого руководства.Если у вас возникнут какие-либо проблемы, оставьте комментарий ниже. И если у вас есть какие-либо мысли о том, как мы могли бы его расширить, просто дайте нам знать. Удачи и удачи!

.