Хостинг для телеграмм бота. Сколько реально стоят Telegram боты? Отправка картинок в TelegramBot API

А также, почему они умирают спустя некоторое время и о том, что нужно для создания самого простого телеграм-бота. Обо всем по порядку в нашей статье.

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

Из чего состоит этот чудесный робот

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

Для настройки собственного бота вам понадобится (простыми словами):

  1. Домен первого уровня для сайта (в среднем стоит от 100 до 600 рублей в год)
    Первый уровень – это сайт.
    Домен второго уровня не подойдет, либо для него все равно понадобится отдельный сертификат SSL (второй уровень — это level2..
  2. Сертификат SSL – пакет услуг, который устанавливает проверенное соединение с сайтом (в браузере мы видим https вместо http и знак щита, либо замочка). Позволяет подтвердить, что сайтом владеет настоящий человек или компания, отвечающий всем нормам и требованиям сети.
    Бывают бесплатные сертификаты, но нередко Telegram-боты дают на них сбои, да и установка их своими силами ну очень сложная для обычного пользователя сети.
    Платный стоит от 1900 рублей в год.
  3. Хостинг – место, где хранятся данные, а также запускаются команды (скрипты), отправляемые ботом. Средняя цена надежного хостинга, поддерживающего скрипты и базу данных – 300 рублей в месяц.

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

Итоговая минимальная стоимость телеграм-бота составляет:
300 + 1900 + 3600 = 5800 рублей в год

Без учета цены на его изготовление, которая может быть как 1000 рублей, так и все 100,000. В зависимости от сложности реализации.

На что стоит обратить внимание

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

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

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

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

+ Еще важный момент

«Я хочу, чтобы бот скидывал комментарии из Инстаграм, а еще проверял Директ»
Отлично! Мы вам сделаем все это! – отвечает фрилансер.

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

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

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

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

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

Подготовка к написанию бота

Обращаться к API Телеграма будем при помощи TelegramBotApi . Соответственно, чтобы клонировать проект с Гитхаба нам понадобиться Composer. Composer как правило не устанавливается без файла php.exe. Самый просто способ это исправить – установить Open Server.

Клонирование проекта с Гитхаба

Открываем командную строку, при помощи команды cd заходим в папку в которую будем устанавливать код и выполняем последовательно следующие команды:

Php -r "copy("https://getcomposer.org/installer", "composer-setup.php");"
php composer-setup.php
php -r "unlink("composer-setup.php");"

Php composer.phar require telegram-bot/api

Заходим в папку и убеждаемся, что все файлы успешно установлены.


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

Кодинг Telegram бота на php

В папке с ботом создадим файл index.php в котором мы и будем писать код нашего бота. Важно! Кодировка файла - utf-8 без bom!

header("Content-Type: text/html; charset=utf-8");
// подключаемся к API
require_once("vendor/autoload.php");
// создаем переменную бота
$token = "токен, который выдал BotFather";
$bot = new \TelegramBot\Api\Client($token);

После того как мы создали переменную бота $bot, мы можем обращаться к api, но прежде нам необходимо зарегистрировать webhook.

Что такое webhook?

WebHook – это механизм по которому выполняется связка бота с telegram’ом. Когда пользователь в телеграме вводит команду, ее надо каким-то образом передавать на сервер и получать ответ. Webhook как раз для этого и нужен. Он сообщает телеграму куда передавать команды. Поскольку Телеграм НЕ ЗНАЕТ, где именно расположен код нашего бота, то нам нужно это исправить.

Для этой цели у нас существует команда: $bot->setWebhook

// если бот еще не зарегистрирован - регистрируем
if(!file_exists("registered.trigger")){
/**
* файл registered.trigger будет создаваться после регистрации бота.
* если этого файла нет существует, значит бот не
* зарегистрирован в Телеграмм
*/
// URl текущей страницы
$page_url = "https://".$_SERVER["SERVER_NAME"].$_SERVER["REQUEST_URI"];
$result = $bot->setWebhook($page_url);
if($result){
file_put_contents("registered.trigger",time()); // создаем файл дабы остановить повторные регистрации
}
}

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

Обязательные команды для ботов

Теперь необходимо научить нашего бота реагировать на обязательные для всех ботов команды /start и /help.

// обязательное. Запуск бота
$bot->
$answer = "Добро пожаловать!";
$bot->sendMessage($message->getChat()->getId(), $answer);
});
// помощь
$bot->command("help", function ($message) use ($bot) {
$answer = "Команды:
/help - помощь";
$bot->sendMessage($message->getChat()->getId(), $answer);
});
// запускаем обработку
$bot->run();

Снова сохраняем индексный файл и попробуем потестировать нашего бота! Ура, все пашет! Дальнейший кодинг зависит от поставленной Вами задачи, а потому самое время поговорить о том, как устроена наша API библиотека

Принцип работы библиотеки TelegramBotApi

Команды задаются блоком:

$bot->command("start", function ($message) use ($bot) {
});

Все команды должны быть до вызова $bot->run(); , а иначе не будет работать. Т.е. $bot->run(); должен замыкать наш код.

Отправка сообщения в TelegramBot API

Отправка сообщения выполняется командой:

$bot->sendMessage(id пользователя которому отправляем, текст сообщения);

Отправка картинок в TelegramBot API

Отправка картинок осуществляется через передачу Телеграмму ссылки на эту картинку. Мессенджер самостоятельно скачивает изображение и отдает пользователю! Для примера отправим юзеру картинку если он введет команду /getpic.
// передаем картинку
$bot->command("getpic", function ($message) use ($bot) {
$pic = "http://binetmed15.beget.tech/wp-content/uploads/forbot.jpg";
$bot->sendPhoto($message->getChat()->getId(), $pic);
});

Отправка документов и голосовых сообщений

Документы, в отличие от картинок необходимо оправлять ввиде POST. К счастью, библиотека TelegramBotApi сделает все что нужно без нашего с вами участия. Сначала загрузим документ в папку с нашим ботом (см картинку ниже)

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

// передаем документ
$bot->command("getdoc", function ($message) use ($bot) {
$document = new \CURLFile("sendfrombot.txt");
$bot->sendDocument($message->getChat()->getId(), $document);
});

Обратите внимание, что строчка

$document = new \CURLFile("sendfrombot.txt");

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

// передаем войс
$bot->command("getvoice", function ($message) use ($bot) {
$voice = "http://binetmed15.beget.tech/wp-content/uploads/glazunov_maxim-prividenie.mp3";
$bot->sendVoice(
$message->getChat()->getId(),
$voice //,
//$duration,
//$replyToMessageId,
//$replyMarkup,
//$disableNotification
);
});

Получение сообщений из чата

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

// болталка
$bot->on(function($Update) use ($bot){
$message = $Update->getMessage();
$mtext = $message->getText();
$cid = $message->getChat()->getId();
if(mb_stripos($mtext,"привет бот") !== false){
$bot->sendMessage($message->getChat()->getId(), "и тебе здорова, чувак!");
}
}, function($message) use ($name){
return true; // когда тут true - команда проходит
});

Сообщаем Botfather-у список наших команд

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

Теперь потестим нашего телеграм-бота.

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

Мы собрали два с половиной десятка самых интересных ботов для Telegram.. А другие обнаружили совсем недавно. Разбирайте.

1. Fast AID - ассистент для Telegram, предназначенный для предоставления первой помощи. Спас не одну жизнь.

2. GrammarNaziBot - проверяющий орфографию бот. Его можно добавить в общий чат, чтобы за неправильное правописание было стыдно всем.

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

4. Telegram Store Bot - а вот с помощью этого умного бота получится искать других ботов. Очень удобный ассистент, который помог создать эту подборку.

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

6. КриптоБот - бот, который следит ща стоимостью Bitcoin и Ethereum, а также показывает график изменения цены первого.

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

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

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

10. Yandex.Translate - бот для перевода с русского на английский, с английского на русский и наоборот . Один из самых полезных в подборке.

11. Ударения - бот расскажет об ударениях в самых хитроумных русских словах. Станет отличным подспорьем в нелепых спорах с друзьями.

12. InstaSave - интересный бот для Telegram, с помощью которого можно загрузить фотографии и даже истории из Instagram.

13. Pomodoro - неординарный бот-таймер для самой продуктивной работы. Он поможет 25 минут работать и 5 минут отдыхать.

14. MyCookBot - уникальный бот, который может подсказать какой-нибудь интересный рецепт на основании списка продуктов, завалявшихся в вашем холодильнике.

15. Vinci - бот-компаньон для одноименного мобильного приложения, которое предназначено для обработки фотографий нейронными сетями.

16. DeLorean - настоящая машина времени, которая поможет отправлять вам самому себе сообщения в будущее. Удобно вместо напоминаний.

17. To PDF - бот, предназначенный для конвертирования DOC, DOCX, ODT, TXT, JPG и других типов файлов в PDF.

18. Dr.Web - фирменный бот популярного антивирусного программного обеспечения, предназначенный для проверки файлов до 10 мб на вирусы.

19. Programming - бот, который заточен не только для профессиональных, но и для начинающих программистов.

20. SoundCloud - умный помощник для поиска и скачивания треков из популярного сервиса прямо через мессенджер.

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

22. Wolfram Alpha - ассистент, который будет решать математические задачки и рассказывать о научных принципах через Telegram.

23. PollBot - простой бот, предназначенный для создания вопросников в групповых чатах. Очень удобный.

24. Translator - максимально быстрый перевод между русским и английским языком. Очень простой и удобный.

25. Instagram Girls - бот для тех, кому грустно или скучно. Он показывает фотографии красивых девочек из Instagram.