Mos220.ru

Онлайн марафоны
3 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Скрипт бота телеграмм

[СКРИПТ — СЛИВ] — Telegram бот автопродаж 24/7

Ставить дизлайк можно только если пользователь нарушает правила форума. Просто так понижать репутацию запрещено. Вы уверены, что хотите поставить дизлайк?

Скрипт бота автопродаж для Telegram с веб интерфейсом для управления.

Ставить дизлайк можно только если пользователь нарушает правила форума. Просто так понижать репутацию запрещено. Вы уверены, что хотите поставить дизлайк?

Скрипт бота автопродаж для Telegram с веб интерфейсом для управления.

Да ну? прям как обещал, скоро прочекаю на годность, жаль инструкции нету

Сообщение отредактировал vodogrey: 19 09 2019 — 15:11

Ставить дизлайк можно только если пользователь нарушает правила форума. Просто так понижать репутацию запрещено. Вы уверены, что хотите поставить дизлайк?

Ставить дизлайк можно только если пользователь нарушает правила форума. Просто так понижать репутацию запрещено. Вы уверены, что хотите поставить дизлайк?

ПРОСТОЙ И УДОБНЫЙ САЙТ ДЛЯ ПРОДВИЖЕНИЯ В СОЦ СЕТЯХ С ГАРАНТИЕЙ

У нас можно купить качественные лайки, просмотры, подписчики, комментарии для

Инстаграм, Вконтакте, Ютуб, Фейсбук итд

Ставить дизлайк можно только если пользователь нарушает правила форума. Просто так понижать репутацию запрещено. Вы уверены, что хотите поставить дизлайк?

Здесь не сливали, да и ещё продают)

Ставить дизлайк можно только если пользователь нарушает правила форума. Просто так понижать репутацию запрещено. Вы уверены, что хотите поставить дизлайк?

Здесь не сливали, да и ещё продают)

Ставить дизлайк можно только если пользователь нарушает правила форума. Просто так понижать репутацию запрещено. Вы уверены, что хотите поставить дизлайк?

На другом борде лежит тот же самый скрипт, но только там ещё и инструкция приложена)

Support 14 апр. 2020

Ставить дизлайк можно только если пользователь нарушает правила форума. Просто так понижать репутацию запрещено. Вы уверены, что хотите поставить дизлайк?

На другом борде лежит тот же самый скрипт, но только там ещё и инструкция приложена)

можешь дать линк пожалуйста?

Ставить дизлайк можно только если пользователь нарушает правила форума. Просто так понижать репутацию запрещено. Вы уверены, что хотите поставить дизлайк?

дайте инструкцию, ничего не понятно! скачала

Ставить дизлайк можно только если пользователь нарушает правила форума. Просто так понижать репутацию запрещено. Вы уверены, что хотите поставить дизлайк?

можешь дать линк пожалуйста?

Ставить дизлайк можно только если пользователь нарушает правила форума. Просто так понижать репутацию запрещено. Вы уверены, что хотите поставить дизлайк?

Ставить дизлайк можно только если пользователь нарушает правила форума. Просто так понижать репутацию запрещено. Вы уверены, что хотите поставить дизлайк?

Ставить дизлайк можно только если пользователь нарушает правила форума. Просто так понижать репутацию запрещено. Вы уверены, что хотите поставить дизлайк?

кто может показать полноценный пример?)))

Ставить дизлайк можно только если пользователь нарушает правила форума. Просто так понижать репутацию запрещено. Вы уверены, что хотите поставить дизлайк?

Ставить дизлайк можно только если пользователь нарушает правила форума. Просто так понижать репутацию запрещено. Вы уверены, что хотите поставить дизлайк?

Зачем что-то сливать, когда давно есть все бесплатно https://zismo.biz/to. n-tcifrovykh-t/

Ставить дизлайк можно только если пользователь нарушает правила форума. Просто так понижать репутацию запрещено. Вы уверены, что хотите поставить дизлайк?

он уже давно не рабочий, код нужно чинить

Ставить дизлайк можно только если пользователь нарушает правила форума. Просто так понижать репутацию запрещено. Вы уверены, что хотите поставить дизлайк?

Зачем что-то сливать, когда давно есть все бесплатно https://zismo.biz/to. n-tcifrovykh-t/

так оно платно в итоге?)

Ставить дизлайк можно только если пользователь нарушает правила форума. Просто так понижать репутацию запрещено. Вы уверены, что хотите поставить дизлайк?

так оно платно в итоге?)

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

Ставить дизлайк можно только если пользователь нарушает правила форума. Просто так понижать репутацию запрещено. Вы уверены, что хотите поставить дизлайк?

он уже давно не рабочий, код нужно чинить

Что именно сломано? Будет время чекну

Ставить дизлайк можно только если пользователь нарушает правила форума. Просто так понижать репутацию запрещено. Вы уверены, что хотите поставить дизлайк?

Этот скрипт давно слит и тут он был тоже уже давно слит.

Если бы ты доработал его и скринов добавил да + инструкцию бы запилил, то цены бы тебе не было. Люди наверное так и продают — доработав.

Ставить дизлайк можно только если пользователь нарушает правила форума. Просто так понижать репутацию запрещено. Вы уверены, что хотите поставить дизлайк?

Доработал оплату,готовый пример @nomer4_bot

Support 14 апр. 2020

Ставить дизлайк можно только если пользователь нарушает правила форума. Просто так понижать репутацию запрещено. Вы уверены, что хотите поставить дизлайк?

В инструкции (Ссылка*=19lecXgQpYFRhVZHb0u6nTk1rEd7InVybCI6InlhLWRpc2stcHVibGljOi8vTElVMXJwNjJZQ3lReFA2WTJoeHlBNjNGb3BKOTBKa2crcGR5eS9OZlNVVjltK1R5bXZhaVc2ZkVlVGZIb3NuK3EvSjZicG1SeU9Kb25UM1ZvWG5EYWc9PSIsInRpdGxlIjoi0JjQvdGB0YLRgNGD0LrRhtC40Y8g0L%2FQviDRg9GB0YLQsNC90L7QstC60LUudHh0Iiwibm9pZnJhbWUiOmZhbHNlLCJ1aWQiOiI5MzEyODE2MjkiLCJ0cyI6MTU2ODk4ODgwNTU1NCwieXUiOiIxMjE2Njk3NDE1NjEzMDM2NjEifQ%3D%3D )сайт Ссылка был указан для регистрации бесплатного домена. Пол дня пробовала им воспользоваться и ничего не вышло. Пишет «мы не смогли проверить человек вы или нет» Подскажите может есть другое решение?

Ставить дизлайк можно только если пользователь нарушает правила форума. Просто так понижать репутацию запрещено. Вы уверены, что хотите поставить дизлайк?

Ставить дизлайк можно только если пользователь нарушает правила форума. Просто так понижать репутацию запрещено. Вы уверены, что хотите поставить дизлайк?

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

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

Ставить дизлайк можно только если пользователь нарушает правила форума. Просто так понижать репутацию запрещено. Вы уверены, что хотите поставить дизлайк?

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

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

Полностью согласен,не ведитесь на эти домены. По поводу трояна это глупость,дыры есть в PHP не спорю так как сам правил.

Ставить дизлайк можно только если пользователь нарушает правила форума. Просто так понижать репутацию запрещено. Вы уверены, что хотите поставить дизлайк?

Ставить дизлайк можно только если пользователь нарушает правила форума. Просто так понижать репутацию запрещено. Вы уверены, что хотите поставить дизлайк?

Есть инструкция для хомяков как это залить и настроить правильно?)

Ставить дизлайк можно только если пользователь нарушает правила форума. Просто так понижать репутацию запрещено. Вы уверены, что хотите поставить дизлайк?

оплату бы допилить туда битков и карту банк было бы вобще годно. жаль не шарю в этом

Сообщение отредактировал synivana22: 28 10 2019 — 17:22

Ставить дизлайк можно только если пользователь нарушает правила форума. Просто так понижать репутацию запрещено. Вы уверены, что хотите поставить дизлайк?

Может кто помочь с настройкой? Админка не работает

Бот для Telegram на Python: от первой строчки кода до запуска на Heroku

Бот для Telegram на Python: от первой строчки кода до запуска на Heroku

    Переводы , 3 июля 2017 в 0:35

В этом руководстве мы разберём процесс написания простого Telegram-бота на Python и его запуска на сервере Heroku. Но сперва давайте выясним, зачем вообще нужны боты и почему вам стоит написать своего.

Вступление

На первый взгляд, Telegram — это просто очередной мессенджер. Реклама гласит, что он быстр, защищён, в нём нет рекламы и всё такое. Но у него есть важная фича — боты!

Бот — это не просто «автоответчик». Его правильнее считать автоматизированным помощником. Представим, что вы хотите поделиться в групповом чате видео с YouTube, но ссылки у вас нет.

Вот стандартный алгоритм действий без бота:

  • открываем YouTube в браузере;
  • находим видео;
  • нажимаем на «Поделиться» (и надеемся, что в списке будет наш мессенджер);
  • если нашего мессенджера в списке не оказалось, копируем ссылку на видео;
  • возвращаемся в мессенджер и делимся ссылкой.

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

  • переписываемся в мессенджере;
  • вводим @vid и название видео, которое вы хотите найти и скинуть в беседу;
  • отправляем его.

Удобно, не правда ли? И это лишь одна из возможностей.

Ивент переехал в онлайн, есть новые даты ( 14 – 15 июля ) , Москва и онлайн, 10 750–138 000 ₽

Telegram позволяет пользователям создавать своих ботов. Ответим на вопрос «Почему мне стоит написать своего?» — это, пожалуй, самый простой способ понять, что такое API.

Круто, начинаем писать бота?

Обо всём по порядку. Сперва нужно зарегистрироваться в Telegram. Наиболее удобно использовать веб-клиент для знакомства с основными принципами работы ботов и API.

Откройте приложение, найдите @BotFather и начните беседу. Отправьте команду /newbot и следуйте инструкциям. После выполнения первых шагов вы получите:

Собственно, вот и всё. На данном этапе ваш бот полностью пассивен.

Вам нужно начать беседу с ботом. Введите в поисковой строке его имя и нажмите на кнопку /start . Отправьте сообщение, например, «Привет». Это первое сообщение очень важно, поскольку оно станет первым обновлением, которое получит ваш бот.

Если вы в первый раз работаете с API, то разобраться вам поможет браузер. Откройте новую вкладку и воспользуйтесь Telegram API, перейдя по ссылке:

Открыв этот адрес в браузере, вы отправите запрос на сервер Telegram, и он ответит вам в формате JSON. Ответ чем-то похож на словарь в Python. Вы увидите что-то вроде такого:

Если вы изучите раздел метода /sendMessage в документации, то увидите, что он принимает два параметра: chat_id и text . Вы можете создавать цепочки параметров в адресной строке браузера, используя ? для первого и & для всех последующих. Команда для отправки сообщения будет выглядеть так:

Попробуйте получить ответ от вашего бота, подставив в качестве chat_id значение, полученное после вызова /getUpdates (в нашем примере — 303262877 ). Текст сообщения может быть любым. Запрос должен выглядеть примерно так:

И когда же будет код?

Если вы пользуетесь Windows и у вас не установлен Python, скачать его можно с официального сайта. Вообще версия не важна, но в этой статье будет использоваться Python 3.x. Если же у вас Linux или macOS, то обе версии (или, как минимум, Python 2.x) уже установлены.

Затем нужно установить pip. В версиях выше Python 2.7.9 и Python 3.4, а также на macOS/Linux он уже есть. Проверить это можно командой pip —version в терминале. Если же по каким-то причинам он отсутствует, установить его можно при помощи команды:

Загвоздка в том, что разные версии Python используют разные pip. Если у вас macOS, вы можете попробовать следовать советам со Stack Overflow. В случае с Windows вам нужно скачать get-pip.py, открыть командную строку, перейти в директорию со скачанным файлом и выполнить команду:

Самое сложное позади. Установим пакет requests при помощи pip:

А теперь — код

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

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

Словарь обновлений состоит из двух элементов: ok и results . Нас интересует вторая часть — список всех обновлений, полученных ботом за последние 24 часа.

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

Теперь нужно добавить ещё 2 функции. Первая будет доставать chat_id из обновления, а вторая — отправлять сообщение.

Помните, как мы объединяли параметры при помощи ? и & ? Вы можете сделать то же самое, добавив словарь в качестве второго дополнительного параметра в функциях get / post из пакета requests.

Скрипт готов, но он не идеален. Главным минусом является необходимость запускать его каждый раз, когда мы хотим, чтобы бот отправил сообщение. Исправим это. Чтобы бот слушал сервер и получал обновления, нам нужно запустить основной цикл. На новой строке, после import requests , добавьте from time import sleep . После этого замените две последние строки на следующий код:

Хотя мы и добавили таймаут в 1 секунду, пример выше можно использовать только в обучающих целях, поскольку он использует частые опросы (short polling). Это плохо влияет на сервера Telegram, поэтому их нужно избегать. Есть ещё два способа получения обновлений через API — длинные опросы (long polling) и вебхуки (webhooks). Если мы будем использовать способ получения обновлений через getUpdates без параметров, то запросы будут происходить слишком часто.

Поскольку мы начали использовать в скрипте основной цикл, мы должны переключиться на длинные опросы. Сперва изменим первую функцию, добавив в неё параметр timeout . Сам по себе он не уменьшит частоту проверки обновлений и будет работать только в том случае, когда обновлений нет. Чтобы помечать уже просмотренные обновления, нужно добавить параметр сдвига offset :

Теперь бот должен работать нормально, но его всё ещё можно улучшить. Давайте инкапсулируем все функции в один класс. Должно получиться что-то вроде этого:

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

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

Устрой деплой

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

Сперва зарегистрируйтесь на GitHub. Создайте аккаунт (рано или поздно он вам точно пригодится) и установите Git. На Linux выполните следующую команду:

На macOS и Windows его нужно скачать и установить вручную. И не забудьте зарегистрироваться на Heroku.

Теперь вам нужно навести порядок в файлах. Создайте новую папку и перейдите в неё в терминале или командной строке. Инициализируйте в ней virtualenv :

Имя не имеет значения, но лучше сделать его интуитивно понятным. Перейдите в папку my_env .

Теперь вам нужно склонировать git-репозиторий. Введите следующую команду:

Поместите скрипт в папку, полученную в результате выполнения команды git clone .

Вернитесь в папку my_env и запустите virtualenv :

Если вы успешно запустили virtualenv , приглашение командной строки должно начинаться с (my_env).

Перейдите в папку репозитория и ещё раз установите модуль requests:

Теперь нужно создать список зависимостей Heroku. Это несложно. Введите:

Создайте Procfile . В этом файле вам нужно разместить инструкции по работе с вашим скриптом. Имя файла обязательно должно быть Procfile ( Procfile.windows в случае с Windows). У него не должно быть других расширений. Содержимое файла должно быть таким (замените my_bot на имя вашего скрипта):

Добавьте файл __init__.py в вашу папку. Он может быть пустым, но он должен там быть.

Отправьте коммит с изменениями в репозиторий:

Теперь развернём бота на Heroku. Можно использовать и панель управления на сайте, но мы потренируемся делать всё через консоль. Если вы столкнётесь с какими-то проблемами, обратитесь к этому руководству.

Рассмотрим лишь те действия, которые нужны для развёртывания приложения. Если вы пользуетесь macOS или Windows, установите интерфейс командной строки, следуя гайду.

Если вы пользуетесь Ubuntu, используйте следующие команды:

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

Теперь выполните следующие команды:

С этого момента ваше приложение должно работать на сервере Heroku. Если что-то пойдёт не так, проверить логи можно следующим образом:

Коды ошибок можно найти на сайте Heroku.

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

[ЭКСКЛЮЗИВ] Бот для автоматических продаж в Telegram

Скрипт: «Бот для автоматических продаж в Telegram» . Материал впервые появился в закрытом разделе в конце июня. Было ожидаемо, что его скоро сольют с какой-либо складчины и это время настало. Вчера на форумах стал появляться бот, но, похоже, что он кривой и все так гордились, что они опубликовали бота в телеграмм. Круто! Выносим из закрытого раздела публикацию для пользователей общего раздела. Материал полный. Внимательно читайте наши комментарии и описания, чтобы не было глупых вопросов. Данная штука — мощный инструмент, который можно адаптировать под разные цели! Да, это нашумевший бот, с помощью которого можно организовать автоматические продажи ваших товаров в Телеграмм. Существует несколько версий ботов (эта версия с приемом средств на киви кошельки). В случае чего, материал будет удален по первому запросу автора (а не перекупов со складчин). Для работы нужен хостинг! Обновлений бота пока не предвидится. У кого есть знания PHP — тот может дописать функционал бота и проверить «на стучалки». Материал прислал анонимный пользователь без комментариев.

Дисклеймер: Перед скачиванием архива, вы соглашаетесь с правилами: Администрация сайта не дает никаких консультаций по настройке, установке бота. В архиве есть инструкция, в крайнем случае спросите в комментариях. Данного бота вы не можете использовать под противозаконные цели (только белые темы). Если Вы не видите хайд — не нужно просить его убрать или снизить.

Материал может быть удален по запросу правообладателя!

Описание:

Автоматизированный бот Telegram для продажи виртуальных товаров. Скрипт с исходным кодом принимает к оплате Qiwi Wallet по комментарию (рубли и тенге). Вы получаете достойнейшего автоматического Телеграм бота продавца который готов трудится на вас 24/7 без сбоев.

Функционал бота:

  • Удобная и функциональная админ-панель
  • Установка Анти-флуда
  • Установка резерва товара
  • Оплата Qiwi Wallet (Bitcoin под заказ)
  • Статистика продаж
  • Создание/Редактирование/Удаление категорий/города
  • Создание/Редактирование/Удаление подкатегорий/районов
  • Добавление/Редактирование/Удаление товаров
  • Информация о всех проданных товарах
  • Информация о всех пользователях бота
  • Возможность заблокировать пользователя
  • Мгновенная рассылка сообщений всем пользователям бота
  • Добавление 5 номеров QIWI для получения оплаты
  • Установка лимита для каждого кошелька Qiwi
  • Просмотр сколько рублей получено на каждый номер
  • Включение/Отключение бота
  • NEW Массовое добавление товара/адресов
  • NEW Страница для сотрудников/курьеров (В главной админке создается аккаунт сотрудника и удаляется. Сотруднику разрешено добавлять, редактировать и удалять свои адреса/товар, отображаются только его адреса/товар
  • NEW Добавлено создание новых кнопок в телеграм боте с произвольным названием и содержанием. (к примеру: «Прайс,Контакты,Правила»)
  • NEW Добавлена статистика товаров сотрудников, всего адресов(товара), адреса в продаже и проданные адреса
  • NEW На странице товаров отображается кто из сотрудников добавил адрес(товар)
  • NEW Добавлено 2 счетчика общего прихода денег с возможностью сброса до 0 и без сброса

Несколько скриншотов:

Советы от OPENSSOURCE:

  • Для работы используете свежезарегистрированные или купленные кошельки киви;
  • Как только накопилась определенная сумма — выводите или переводите на другой кошелек;
  • Все действия вы делаете на свой страх и риск.

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

Как написать Telegram бота: практическое руководство

В последнее время Telegram у всех на слуху. Нужно отдать должное отделу маркетинга этого приложения, шумиху подняли на славу. Одной из основных «фишек» Telegram является его якобы защищённость — по словам Павла Дурова вся переписка между пользователями шифруется. Более того, ни одна спец.служба мира не будет иметь доступ к вашим сообщениям. Но в данной статье речь не об этом. Сегодня хотелось бы поговорить о не менее крутой фишке в Telegram, а именно о ботах. Помимо того, что в сети уже полно информации о различного рода Telegram ботах (github бот, например), мессенджер открыл своё API для разработчиков, и теперь каждый может создать своего собственного бота с блэкджеком и плюшками.

В статье я приведу пример написания онлайн бота с использованием Python и Django фреймворка. То есть мы «запилим» полноценное веб-приложение, которое будет крутиться на удалённом хосте и принимать команды от пользователей. Весь исходный текст доступен в моём github репозитории.

Документация, описывающая процесс взаимодействия с ботами Telegram находится тут. Чтобы не изобретать велосипед, я нашел неплохую Python библиотеку, реализующую все основные функции ботов — telepot. Как я уже упоминал ранее, для того, чтобы обслуживать пользователей нашего бота мы будет разрабатывать веб-приложение, используя Django фреймворк.

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

Для начала нам необходимо зарегистрировать в Telegram нашего будущего бота. Это делается следующим образом:

  • Необходимо установить приложение Telegram на телефон или компьютер. Скачать приложение можно тут
  • Добавляем к себе в контакт-лист бота с именем BotFather
  • Запускаем процедуру «общения» с ботом нажатием кнопки Start. Далее перед нами предстанет список команд точно как на скриншоте.
  • Для того, чтобы создать нового бота необходимо выполнить команду /newbot и следовать инструкциям. Обратите внимание, что username для бота должен всегда содержать в конце слово bot. Например, DjangoBot или Django_bot.

  • Для нашего бота я выбрал имя PythonPlanetBot, так как его основная функция заключается в парсинге RSS feed сайта Python Planet и выдача информации о последних постах пользователю 🙂

После создания бота, обратите внимание на строку с текстом:

Use this token to access the HTTP API:

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

  • Присвоить боту описание
  • Установить аватар
  • Поменять token

и так далее. Полное описание доступных команд можно увидеть на первом скриншоте.

Приступаем к кодированию

Как я ранее уже упоминал, мы будем писать веб-приложение на Django. Но стоит отметить, что это делать необязательно. Можно обойтись и обычным Python скриптом, правда в этом случае необходимо будет периодически опрашивать Telegram на предмет новых запросов от пользователей бота (используя метод getUpdates) и увеличивая offset для получения самых последних данных без повторений. В Telegram существует два взаимоисключающих метода получения команд/сообщений для вашего бота.

  • Использование вызова API метода getUpdates
  • Установка Webhook

Установка Webhook заключается в передаче боту специального URL адреса на который будет поступать POST запрос каждый раз, когда кто-то начнёт посылать сообщения боту. Именно этот вариант мы и будем использовать для взаимодействия между ботом и его пользователем. Для того, чтобы задать URL, необходимо использовать API метод setWebhook. Отмечу, что URL должен начинаться с https, то есть иметь защищённое SSL соединение с валидным сертификатом. Telegram разрешает использовать самоподписанный сертификат, правда для этого необходимо в методе setWebhook передавать также публичный ключ в PEM формате (ASCII base64). Либо же можно получить валидный бесплатный SSL сертификат от Let’s Encrypt.

Подробнее о getUpdates и setWebhook можно почитать соответственно здесь и тут.

Итак, вернёмся к python библиотеке для работы с Telegram — telepot. На текущий момент самой последней её версий является 6.7. Устанавливаем её в виртуальное окружение python virtualenv:

Самый простой вариант взаимодействия с Telegram ботом на Python выглядит следующим образом:

Переменной token присваиваем значение токена, полученного при создании бота через BotFather. В итоге после выполнения этих команд мы получим:

Поздравляю! Мы вызывали самый простой API запрос getMe, который возвращает информацию о боте: username, id, first_name.

Добавим нашего бота к себе в контакт-лист и пошлём ему первую стандартную команду /start

Процесс общения с telegram ботом происходит по HTTPS; для передачи данных используется JSON. Метод getUpdates возвращает список/массив из объектов типа Update. Внутри Update находится объект Message. Для стандартного взаимодействия с ботом нас фактически интересует именно объект Message, у которого мы считываем атрибут text, хранящий в себе текст, переданный боту и объект chat, в котором лежит информация о пользователе, инициировавшем общение с нашим Telegram ботом. Также имеется параметр update_id, который служит в качестве offset параметра при вызове метода getUpdates. То есть update_id+1 вернёт все сообщения, поступившие после последнего update_id, при этом все предыдущие сообщения будут удалены.

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

Простая функция парсинга RSS фида Planet Python выглядит вот так:

Здесь я использую python библиотеку requests для работы с HTTP в самом простейшем варианте без обработки ошибок. Django «вьюшка» выглядит следующим образом:

CommandReceiveView ждёт POST запрос на себя, парсит его и отвечает исходя из заданной команды. Полноценное Django приложение можно найти по этой ссылке. Стоит отметить в коде использование ещё одного API вызова — sendMessage. Этот метод отправляет сообщение заданному пользователю, используя при этом chat_id и сам текст сообщения. Chat_id — это уникальный идентификатор чата между пользователем и ботом (его идентификатор есть в ответе на запрос getUpdates). У Telegram ботов есть одно ограничение, они не могут посылать сообщения пользователям, которые предварительно не инициировали общение с ним. По-видимому это сделано дабы избежать массового создания спам-ботов.

Я предполагаю, что вы уже клонировали мой репозиторий, настроили окружение и установили все необходимые зависимости: Django, requests, telepot. Если же вы не знаете как это сделать, то совсем скоро я напишу цикл статей о разработке веб-приложений на Python, включая разбор экосистемы: разработка, настройка, деплой. Если вам это интересно, то отпишитесь, пожалуйста, в комментариях к этой статье. Хочется получить обратную связь 🙂

Итак, веб-приложение на Django запущено. Как же начать тестировать бота? А всё очень просто — необходимо симулировать действия Telegram сервиса. Для этого нам понадобится HTTP клиент и тело запроса. В качестве HTTP клиента я часто использую Chrome плагин под названием Postman, а тело запроса мы возьмём напрямую из данных, полученных с помощью API вызова getUpdates.

После запуска runserver, URL на который необходимо посылать запрос выглядит следующим образом:

где BOT_TOKEN — это токен нашего бота. Смотрим скриншот:

А давайте-ка отправим команду feed для получения списка новостей из Planet Python:

На скриншотах видно, что бот адекватно отреагировал на нашу команду вывести список последних 10 постов.

Следующим шагом является деплой нашего Django приложения на удалённый хост и последующий вызов метода setWebhook для передачи URL на который будет посылаться POST запрос от сервиса Telegram каждый раз при поступлении команд боту от пользователей. Об этом мы поговорим в следующей заметке.

Запускаем телеграм-бота на сервере

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

Вот что мы сде­ла­ем, что­бы бот рабо­тал неза­ви­си­мо от все­го:

  1. Выбе­рем сер­вер.
  2. Под­го­то­вим про­грам­му для рабо­ты на нём.
  3. Зальём про­грам­му на сер­вер.
  4. Настро­им сер­вер, что­бы он испол­нял про­грам­му.

Выбираем сервер

Нам нужен сер­вер, кото­рый уме­ет рабо­тать с Python и запус­кать фай­лы про­грам­мы авто­ма­ти­че­ски. На самом деле он у нас уже есть — на нём кру­тит­ся сайт mihailmaximov.ru. Если вы всё про­пу­сти­ли — дер­жи­те под­бор­ку:

Тот хостинг, кото­рый мы выбра­ли для про­ек­тов, уже уме­ет запус­кать Python-файлы. Если вы поль­зу­е­тесь дру­гим сер­ви­сом, то про­верь­те, уме­ет ли он то же самое.

Готовим программу и отправляем её на сервер

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

Что­бы это узнать, соеди­ним­ся с сер­ве­ром по про­то­ко­лу SSH и спро­сим у него напря­мую. Для это­го исполь­зу­ем про­грам­му Putty, а настрой­ки под­клю­че­ния возь­мём в лич­ном каби­не­те хостин­га:

Встав­ля­ем их в Putty и под­клю­ча­ем­ся. Помни­те, что для без­опас­но­сти во вре­мя вво­да паро­ля кур­сор сто­ит на месте, что­бы никто не смог выяс­нить, сколь­ко сим­во­лов вы наби­ра­е­те. Когда под­клю­чи­лись, вво­дим коман­ду python3.3 -V — она пока­жет, есть ли на сер­ве­ре под­держ­ка этой вер­сии Python:

Теперь добав­ля­ем в самое нача­ло наше­го фай­ла с про­грам­мой такую строч­ку:

В ста­тье о том, как опуб­ли­ко­вать сайт в интер­не­те, мы рас­ска­зы­ва­ли, как залить фай­лы на сер­вер. Это уме­ние нам сей­час при­го­дит­ся: сохра­ня­ем нашу про­грам­му с горо­ско­пом как файл с рас­ши­ре­ни­ем .py и отправ­ля­ем его на сер­вер в пап­ку cgi-bin (то, что лежит в этой пап­ке, никто не уви­дит):

Настраиваем сервер

Теперь научим сер­вер пони­мать, как рабо­тать с нашей про­грам­мой. Для это­го в корне сай­та нахо­дим файл .htaccess и добав­ля­ем в него такую строч­ку:

AddHandler cgi-script .py

Если у вас тако­го фай­ла нет — создай­те его и не забудь­те про точ­ку в самом нача­ле назва­ния.

Послед­нее, что оста­лось сде­лать, — настро­ить пра­ва досту­па у фай­ла с про­грам­мой. Нахо­дим её сре­ди фай­лов хостин­га и выстав­ля­ем пра­ва 755 или rwxrwxr-x:

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

В SSH-терминале пишем по оче­ре­ди такие коман­ды (вме­сто .thecode мож­но напи­сать назва­ние ката­ло­га, кото­рое вам по душе):

virtualenv .thecode
source .thecode/bin/activate

Эти две коман­ды созда­дут вир­ту­аль­ное про­стран­ство для запус­ка Python-файлов.

Теперь уста­но­вим Python-модуль для рабо­ты с Теле­гра­мом:

pip install pytelegrambotapi

Когда уста­нов­ка закон­чит­ся, пишем такую коман­ду:

nohup python3 /home/t/thecode/osebe/public_html/cgi-bin/telegoroskop.py

/home/t/thecode/osebe/ — это наш путь к пап­ке cgi-bin, а у вас он будет дру­гим. Поме­няй­те путь на свой и запус­кай­те.

Что­бы про­грам­ма про­дол­жа­ла рабо­тать после того, как мы закро­ем SSH-клиент, в самом нача­ле пишем коман­ду nohup .

Резуль­тат про­ек­та — бот @TheCode_Baboolya_bot.

Что дальше

Мы сде­ла­ли самые базо­вые вещи — запу­сти­ли скрипт на сер­ве­ре и сде­ла­ли так, что­бы он рабо­тал там посто­ян­но. Но вот как мож­но это улуч­шить:

Читать еще:  Телеграм группы список
Ссылка на основную публикацию
Adblock
detector