Как проверить телеграмм бота

от admin

Телеграм-бот на сервере: загрузка, настройка и запуск

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

Шаг 1. Выбрать хостинг

Как правило, на shared-хостинге отсутствует поддержка Node.js, поэтому нам понадобится как минимум виртуальный сервер. Существуют сервисы, предлагающие VPS бесплатно, но с заметными ограничениями: например на количество трафика или нагрузку на сервер. Можно выделить несколько известных зарубежных провайдеров (но стоит отметить, что для новичков они могут оказаться сложными):

  • Google Cloud
  • Oracle Cloud
  • Amazon Web Services

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

Для примера мы закажем облачный VPS в REG.RU, вы можете воспользоваться любым VPS-хостингом. Он удобен для тестового проекта тем, что оплата почасовая. При выборе тарифа мы рекомендуем ориентироваться на несколько параметров:

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

Так как наш бот использует только одну основную библиотеку и состоит из нескольких строк кода, мы выбираем самый младший тариф — Cloud-0. В будущем, если возникнет необходимость, можно перейти на более дорогой тариф.

Шаг 2. Заказать хостинг

Переходим по ссылке: https://www.reg.ru/vps/cloud/, выбираем тариф, операционную систему и шаблон «Чистая ОС». Если у вас нет особых предпочтений, рекомендуем выбрать Ubuntu 18.04. Хотя у REG.RU есть шаблон c Node.js, для чистоты эксперимента всё необходимое ПО мы установим сами. Нажимаем кнопку «Заказать»:

После заказа и оплаты дождёмся настройки сервера:

Настройка сервера

В течение минуты статус сервера сменится с «В процессе» на «Активен». После этого отобразятся реквизиты доступа к серверу, они также будут отправлены на почту:

Реквизиты доступа к серверу

Шаг 3. Загрузить бота

Приступим к загрузке бота на сервер. Это можно сделать разными способами — с помощью FTP, SFTP, панели управления или, к примеру, rsync. Мы выберем самый быстрый вариант — SFTP, так как для него нужна только возможность подключения к серверу по SSH, которая обычно присутствует на всех VPS сразу после заказа.

Мы подключимся к серверу с помощью FileZilla. Укажем IP-адрес сервера, а также логин root и пароль в настройках клиента:

Настройки клиента

При первом подключении появится окно с предупреждением:

Окно с предупреждением

Ставим галочку «Всегда доверять этому хосту» и нажимаем «Ок».

Переходим на директорию выше ( . ), затем в каталог /opt и создаём папку с произвольным названием (мы выбрали keksbot ):

Директория проекта

Переходим в созданную папку и загружаем файлы index.js и package.json :

Папки с проектом на компьютере и на хостинге

Шаг 4. Зайти на сервер по SSH

Теперь нужно подключиться к серверу по SSH, чтобы установить Node.js и запустить бота. Для этого необходим SSH-клиент, например Putty, XShell, Bitvise SSH или любой другой. Функциональность программ может немного отличаться, но большой разницы в использовании между ними нет. Мы выбрали PuTTY как самый популярный и бесплатный SSH-клиент для Windows.

Открываем PuTTY, указываем IP-адрес сервера, порт 22 уже указан по умолчанию:

Базовые настройки PuTTY

Нажимаем «Соединиться». Откроется окно с запросом логина:

Окно с запросом логина

Вводим root , после чего появится запрос пароля, при вводе которого символы не отображаются. Не стоит переживать, это особенность работы Linux — пароль нужно вводить вслепую. Чтобы не делать этого вручную, можно скопировать пароль и нажать правой кнопкой мыши в окне PuTTY. Убедитесь, что вы скопировали пароль без пробелов!

Шаг 5. Установить Node.js

Теперь займёмся установкой. Обратите внимание, что команды для установки Node.js отличаются в зависимости от операционной системы. В наших примерах указаны команды для Ubuntu, Debian и CentOS — мы будем вводить их в консоли SSH-клиента.

Если вы не знаете, какая ОС установлена на сервере, можете проверить это командой:

Вывод будет примерно таким:

Нас интересует поле NAME , в котором указано название дистрибутива.

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

для Ubuntu/Debian

Подождём завершения установки и проверим, что Node.js работает:

Если в ответе отобразилась версия установленного пакета, то всё прошло успешно.

Теперь перейдём в папку с файлом бота и установим зависимости:

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

При установке могут появиться ошибки вида:

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

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

Во втором случае для решения проблемы нужно завершить процесс менеджера пакетов и удалить lock -файлы. Чтобы это сделать, запустите команды:

для Ubuntu/Debian

После этого попробуйте заново запустить установку.

Шаг 6. Запустить и проверить бота

Пришло время запустить бота. Для начала запустим утилиту Screen простой командой:

Перейдём в каталог с файлом бота:

После этого можем запустить бота:

Заходим в Telegram, проверяем бота:

Проверка работы бота

Отлично! Всё работает.

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

Шаг 7. Обеспечить автоматический перезапуск бота

Из-за ошибок в коде бот может «упасть» в самый неожиданный момент. Чтобы этого не случилось, настроим автозапуск бота при старте сервера и его автоматический перезапуск при ошибках.

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

Большинство современных Linux-систем используют systemd для управления службами, поэтому следующая инструкция подойдёт для последних версий Ubuntu, Debian и CentOS.

Для начала отключим бота командой:

Нам понадобится создать собственную службу, для этого в каталоге /lib/systemd/system создадим файл:

В нашем случае это будет файл /lib/systemd/system/keksbot.service . В файл поместим следующий код:

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

В поле Description указывается описание службы. Вы можете указать в ней краткую информацию о боте.

Команда для запуска бота.

Её следует поменять, если имя скрипта вашего бота отличается от index.js . В таком случае нужно будет указать следующие значения:

Папка со скриптом, который мы запускаем. В нашем случае это /opt/keksbot/ .

Сохраняем файл. В примерах далее мы будем использовать имя службы keksbot — если вы указали другое имя, не забудьте поменять его. Для установки службы воспользуемся командами:

Теперь запустим бота командой:

Готово. Теперь бот будет автоматически запускаться при старте сервера или при возникновении ошибок. Можно проверить это, завершив процесс node:

Роботы в Телеграм — как найти и добавить

Телеграм имеет существенное отличие от ближайших конкурентов — Viber и WhatsApp. Оно заключается в огромном количестве самых разнообразных ботов, которые востребованы аудиторией. Ботов иногда называют «роботами». Разберемся, что такое роботы в Телеграм и как они работают.

Специально для жителей РФ: рекомендуем бота TeleBot, который раздает надежные, быстрые и бесплатные MTProxy для обхода блокировки Telegram.

Содержание:

  • Что такое роботы в Телеграм ;
  • Как найти и запустить робота: 2 способа ;
  • Встроенные боты (роботы) в Телеграм .

Что такое роботы в Телеграм

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

Рекомендуем: КредоБот — удобный бот для подбора кредитов и займов в 2019 году с возможностью узнать бесплатно свой кредитный рейтинг.

Суть бота — выполнение различных действий в ответ на посылаемые пользователем команды.

Так как у Телеграм открытое API (интерфейс прикладного программирования), любой желающий может создать собственных роботов. Однако для этого все же потребуются навыки программирования.

Безопасны ли Telegram-боты?

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

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

И еще одна предосторожность, прежде чем мы перейдем к тому, как найти роботов: не открывайте .exe файлы, которые вам отправляет Telegram-бот, то есть программы.

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

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

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

Как найти и запустить бота в Телеграм

Способ №1: зная юзейрнем

Роботов в мессенджере сотни тысяч, если не миллионы. Найти среди них что-то интересное непросто, но возможно. Посмотрим что нужно сделать, чтобы найти нужного робота в Телеграме.

Если вы знаете юзернейм бота (@имя_бота_bot), то всё очень просто. Нужно всего лишь ввести его в строку поиска мессенджера.

картинка: как найти робота в telegram

Чтобы найти робота в Телеграм, самый простой способ — вставить в поисковую строку его юзернейм. Если вы, конечно, его знаете

Вот Телеграм-робот для примера: @EasyStrongPasswordBot. Кстати, весьма полезный помощник. Он создаёт для вас сложные пароли и подбирает к ним мнемонические фразы для быстрого запоминания.

  1. Вставляем в строку поиска телеграм имя бота — @EasyStrongPasswordBot;
  2. Проверяем результаты поисковой выдачи. У нужного нам робота имя должно полностью совпадать с тем, что мы указали;
  3. Выбираем команду «/start». Робот запускается;
  4. Выбираем команду «/lang». Указываем нужный язык нажатием кнопки;
  5. Робот предлагает выбрать просто или сложный пароль. Выбираем. Видим результаты.

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

Все роботы действуют по одному принципу — через команды. Где-то команды вводятся через строку набора сообщения, где-то — через специальные кнопки под этой строкой.

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

картинка: роботы и боты в telegram

Любой Телеграм бот реагирует на определенные команды

Читать:
Как играть в мафию в телеграмме

Способ №2: Каталог ботов

На нашем сайте есть огромный Каталог ботов. В нем вы обязательно найдете Телеграм бота по душе, поскольку суммарно их добавлено практически 2 000 штук!

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

Способ №3: Список лучших

Тут все просто: воспользуйтесь нашей статьей с перечнем самых крутых роботов.

Встроенные боты (роботы) в Телеграм

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

Таких роботов несколько:

@pic — ищет картинки;

@gif — ищет гифки;

@imdb — ищет фильмы;

@youtube — любое видео на Ютубе к вашим услугам;

@wiki — можно найти интересную статью на Википедии;

@vkmusic_bot — помогает найти и скачать музыку из Вконтакте;

@ya — поиск в Яндексе.

Чтобы запустить такого бота нужен минимум усилий:

  1. Заходим в Телеграм чат с любым собеседником;
  2. Пишем в строке набора сообщения имя бота. Например, @youtube;
  3. После имени робота вводим поисковый запрос, «Enter» пока не нажимаем;
  4. Просматриваем результаты выдачи и отправляем нужное видео собеседнику.

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

Автоматизированное тестирование ботов для Telegram

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

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

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

Конечно, можно зарегистрировать дополнительного бота для тестирования, но это вариант кривой и некрасивый. Обращение ко внешнему апи во время тестов, заглушка, которая не даст общаться с ботом кому попало, ограничение на скорость отправки сообщений раз в секунду… Если слать сообщение раз в секунду, то граф из каких-то 60 вершин будет тестироваться уже больше минуты! И я уже не говорю о том, что у нас нет никакой возможности смоделировать возросшую нагрузку на бота, при которой он упрётся в ограничение в 30 сообщений в секунду… В общем, я понял, что опять придётся делать что-то своё.

Два решения задачи

Надстройка

Первый вариант с огромной скоростью реализации — это просто надстройка над самой популярной Node.JS библиотекой для реализации Telegram ботов — node-telegram-bot-api. Сделано довольно просто — переписывается обработчик события на отсылку данных, после чего мы обрабатываем данные своим методом и посылаем вручную сгенерированный запрос. Выходит примерно так:

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

Свой сервер API Telegram

Решение выше хорошо для быстрого тестирования каких-то простых вещей и покроет большинство потребностей тестирования. Однако что делать, если мы хотим, скажем, тестировать, как наш бот работает под большой нагрузкой? В этом случае единственный логичный выход — это реализовать свой вариант Telegram API. Звучит довольно страшно, но на самом деле нам нужна простая реализация, которая совместима с текущими библиотеками для ботов и позволяет отправлять клиентские запросы. Кстати, как побочная фича — получается, что мы делаем полноценный сервер, с которым можно работать из любого другого стека технологий — хоть питон, хоть C#, хоть что.

To make the long story short, я сделал и такой вариант. С ним тестирование логики того же бота выглядит примерно так:

То есть, мы поднимаем у себя на локальном порту сервер, дальше стандартным образом настраиваем бота на работу с этим сервером, и просто шлём ему сообщения от ботов и клиентов. Объект клиента можно получить прямо из сервера, или можно написать своего клиента — сервер просто принимает сообщения в стандартном JSON формате по определённому адресу.

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

Первому проекту особо добавить нечего, а второй скорее всего будет развиваться в сторону моих личных потребностей. Но я немного рассчитываю на поддержку open source сообщества. Лицензия MIT, поддержка Node.js 4 и 6 (5 тоже будет работать, но на ней не пройдут тесты, поскольку используемый для теста бот несовместим с Node 5. Впрочем, я уже создал на это pull request), репозитории ждут ваших пулл реквестов с кодом, оформленным по включённой в проект конфигурации линтера. Некое количество тестов тоже есть. Возможно, со временем будет поддержка ботов и для других мессенджеров.

Если вам интересна сама тема ботов, то оставайтесь на связи. Будет интересно.

Как отличить бота от человека на форумах или в чатах мессенджеров?

Lorem ipsum dolor

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

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

Как отличить бота от человека в чатах мессенджеров

  1. Последние события. Чаще всего боты не владеют последними новостными событиями. А это значит, что можно «повернуть» ваше общение и попробовать обсудить последние новости , и при это м обязательно наблюдать за тем, как поведет себя ваш «собеседник».

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

  3. Орфографические ошибки. Ошибки и опечатки (желательно несколько в одном слове) могут бота поставить в тупик, потому что он будет не готов к этому. При этом живой человек может распознать такой текст без проблем. Попробуйте и этот прием.

  4. Сокращенные слова. Это тоже относится к серии «трудности распознавания». Используйте в своем диалоге сокращения слов — так есть высокая вероятность , что бот их не поймет. Помимо сокращения слов, примените еще и сокращение предложений. Боту сложно распознать контекст сообщения, поэтому вам будет легче понять , кто находится по ту сторону экрана.

Как отличить бота от человека в соцсетях и форумах

  1. Находят некий аккаунт в соцсети, который подходит под нужные параметры.

  2. С аккаунта полностью копируют всю информацию: аватар, фото а льбомы, основную информацию, видео, музыку.

  3. Заполняют свой фейковый аккаунт иногда в этой же соцсети, иногда — в другой.

  4. Добавляют несколько друзей, оставляют несколько постов, делают несколько лайков и репостов.

  1. Проследите за активностью подозрительного аккаунта. Если это т аккаунт пиарит, лайкает, делится одним и тем же сайтом, порталом или постом, то тут все ясно. Тем более если этот ресурс будет из разряда «непопулярных» тем: сайты для взрослы х , онлайн-казино, кредитные организации, политические ресурсы и др.

  2. Посмотрите друзей этого аккаунта. Для обычного человека слишком много друзей — это подозрительный факт. Однако не нужно путать популярных людей: музыкантов, блогеров, бизнесменов, политиков и т. д . — тут нормально иметь много друзей. Если друзей немного, то имеет смысл посмотреть, кто они . Если в друзьях такие же боты, то все ясно. Если небольшое количество друзей добавлены за один день и в течение одного часа, то тут тоже все ясно — перед вами , скорее всего , бот.

  3. Посмотрите на фотографии аккаунта. Если на фото нет людей, а лишь картинки, то есть вероятность , что это бот. Но самое главное — посмотрите на дату их добавления : если в аккаунте несколько десятков фотографий (даже одного человека!), но они добавлены за один день, то это тоже повышает шансы того , что перед вами бот.

  4. Напишите в «личку». Это типичная проверка на «живучесть». Если не ответит, то есть вероятность , что перед вами бот. elslots.online

  5. Посмотрите на оценки, комментарии и на то, кто делился постами вашего аккаунта. Если каждый раз это небольшое количество одних и тех же людей, то есть вероятность, что перед вами бот. Не лишним будет посмотреть профиль «комментирующих», похожи ли они на живых друзей нашего предполагаемого бота? Есть ли в комментариях диалог между владельцем аккаунта и комментирующими?

Заключение

  • никогда не вести диалоги личного характера с незнакомыми вам людьми;

  • если есть хоть малейшее подозрение в достоверности аккаунта в соцсети или на фор у ме, то обходите его стороной.

Мы будем очень благодарны

если под понравившемся материалом Вы нажмёте одну из кнопок социальных сетей и поделитесь с друзьями.

Похожие статьи