Дать боту доступ к сообщениям Телеграмм

Сможет ли бот читать сообщения в группе в Телеграм

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

Источник: linkbaza.com

как настроить ирис бот в тг приветствие и правила

Как сделать чтобы телеграм бот работал постоянно

В Telegram с 24 июня 2015 появились боты, а точнее Telegram Bot API. То есть, теперь мою прошлую задачу получения статуса сервера можно решить гораздо удобнее.

Бот не является “пользовательским аккаунтом”, ему не нужен номер телефона, и самое главное — не нужно ставить клиентское приложение для Telegram на сервере или где вы хотите его использовать. Бот для Telegram — это ну как бы и есть API — веб-запросы к серверам Telegram. Механизм обработки запросов и отправки ответов лежит на вас, как на владельце бота.

Официальная документация по ботам здесь: https://core.telegram.org/bots

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

Нужно написать самому главному боту — BotFather:

BotFather help

…и уважительно попросить создать нового бота:

BotFather newbot

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

Сейчас, когда у вас уже создан бот и получен токен, я могу на примере продемонстрировать, что конкретно имел в виду под словами “это ну как бы и есть API”. Откройте браузер и перейдите по такому адресу:

Еще по теме:  Как писать большие статьи в Телеграм

В браузере отобразится примерно такое:

Для большей наглядности, вот скриншот браузера:

Telegram бот вызов из браузера

Вот что такое бот в Telegram. Вы отправляете веб-запрос и получаете на него JSON-ответ.

Разумеется, нам нужно автоматизировать как отправку запросов, так и разбор JSON-ответов, потому нужна программная реализация бота, которая будет работать на каком-нибудь сервере (можно и на домашнем компе, но тогда, очевидно, бот будет доступен только когда будет включен компьютер). И для этой цели можно выбрать абсолютно любой язык программирования, поддерживающий отправку веб-запросов, ведь, как я уже сказал и продемонстировал — работа с ботом это всего лишь отправка веб-запросов и разбор ответов.

Реализация бота

Я выбрал язык Python. Выбор далеко не случаен. Дело в том, что для Python уже есть готовая библиотека, существенно облегчающая реализацию бота — это pyTelegramBotAPI. Собственно, в ней сделано уже всё, что требуется для отправки веб-запросов и получения ответов, вам остаётся только описать команды, которые ваш бот будет уметь выполнять. Однако, какое-то понимание всё же потребуется, потому настоятельно рекомендую изучить документацию по API: https://core.telegram.org/bots/api

Итак, вам нужно поставить Python и какую-нибудь IDE (хотя, конечно, можно и в Блокноте). Вот что у меня:

Итак, у вас установлен Python и pip, ставим pyTelegramBotAPI:

Теперь создаём файл someTestBot.py , в котором и будет описан функционал бота. Я определил две обязательных команды /start и /help , а также команду отправки статуса сервера /server (забегая вперёд, она предназначена для запуска в Linux, так что при тестировании на Windows её вызов зафейлится):

Скрипт сбора информации о статусе сервера status.sh я взял из прошлой статьи и немного изменил:

Его надо поместить на сервере по пути /root/scrps/status.sh , либо каком другом, но тогда надо не забыть изменить его и в исходниках бота.

На этом реализация бота закончена.

Возвращаемся к BotFather, указываем ему команды, которые знает бот:

BotFather commands

Размещение и запуск бота на сервере

Telegram бот команды

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

Еще по теме:  В Телеграмме список контактов откуда

Кстати, обратите внимание — приложение показывает подсказки о всех командах бота, которые мы добавили через BotFather:

Telegram бот команды

Теперь задача, как сделать так, чтобы бот работал постоянно. Идём на сервер с Linux, создаём каталог /usr/local/bin/someTestBot/ , кладём в него наш someTestBot.py . Кстати, на сервере тоже должен быть установлен pyTelegramBotAPI (разумеется, Python и pip тоже).

Я расскажу о двух способах, как запустить скрипт в качестве сервиса: Supervisor и systemd .

Supervisor

Создаём конфиг для процесса ( /etc/supervisor/conf.d/someTestBot.conf ):

С таким конфигом, надо полагать, бот будет “выполняться” с root правами, что некруто. Скорее всего, можно задать, с какими правами это будет работать. Ну да ладно, нам же надо скорее в продакшн, так что запускаем:

systemd

А можно ничего и не устанавливать, если в системе используется systemd .

В User=someTestBot можно и root указать, но я рекомендовал бы создать под это отдельного юзера. Правда, тогда чтобы работали скрипты, надо будет дать этому пользователю доступ к mysqladmin .

Включаем нашу только что созданную службу:

Ну всё, бот работает, проверяем:

Telegram бот статус сервера

Что ещё можно сделать? Ну, вот эта строка — bot.polling() — в общем-то, означает бесконечно выполняющийся цикл запросов к серверам Telegram, что не очень правильно в плане потребления ресурсов на обеих сторонах. Лучше сделать так, чтобы приложение бота ожидало сообщения от Telegram. Это можно сделать, реализовав webhook. Когда доберусь до этого, дополню статью.

Наконец-то запилил инструкцию на webhook. Решил не добавлять здесь, а запостить новую статью.

Как сделать так, чтобы бот работал постоянно?

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

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

Я воспользовался сервисом https://www.pythonanywhere.com там все бесплатно и понятно. Регистрируешься, затем добавляешь файлы с ботом в раздел Files и после запускаешь.

Нажимая «Принять все файлы cookie» вы соглашаетесь, что Stack Exchange может хранить файлы cookie на вашем устройстве и раскрывать информацию в соответствии с нашей Политикой в отношении файлов cookie.

Еще по теме:  Нотификация что это такое в Телеграмме

Как сделать, чтобы на VDS Телеграм бот работал постоянно?

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

1) Как сделать чтобы бот работал постоянно/круглосуточно + автоматически запускался после краша?
(Сейчас использую PuTTY, как я понял после запуска бота из консоли, в случае закрытия этой самой консоли бот тоже остановится?)

2)Как запускать одновременно на одном серваке несколько ботов, чтобы не было конфликтов между ними.
(Слышал про cmd-команду «screen» для создания виртуальной сессии, а также про systemd, это оно, копать в эту сторону?

3)Webhook предпочтительнее longpolling при одновременной работе нескольких ботов или не суть?

З.Ы. Хост — Fornex; Админка — Vesta; ОС — Debian 9; Терминал клиент — PuTTY; FTP клиент — WinSCP

Запускаем Python-скрипт на сервере, чтобы он работал всё время

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

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

Коротко — суть

Чтобы было понятно, что тут происходит, вот короткая версия:

  1. Настраиваем удалённый доступ к серверу.
  2. Создаём папку и заливаем в неё скрипт, который в итоге должен будет работать всё время.
  3. Создаём у себя на компьютере файл службы — он управляет настройками автозапуска скрипта.
  4. Отправляем файл службы на сервер.
  5. Обновляем на сервере данные обо всех службах и запускаем нашу.

Теперь подробно про каждый шаг.

Предварительная работа

Основное, что мы будем использовать, — это удалённый доступ к серверу по SSH. Для этого он должен быть включён на самом сервере, и там же можно сразу посмотреть параметры доступа. Например, для работы нашего учебного сервера мы пользуемся услугами SpaceWeb, где доступ по SSH включается из панели управления:

Запускаем Python-скрипт на сервере, чтобы он работал всё время

Запускаем Python-скрипт на сервере, чтобы он работал всё время

Рейтинг
( Пока оценок нет )
Загрузка ...