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

Пишем телеграм бота на Go и AWS Lambda

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

Пишем телеграм бота на Go и AWS Lambda

Почему AWS Lambda ?

  1. Удобство деплоя, просто пишешь sls deploy , и lambda уже выгружена
  2. Платишь только за время, когда lambda работает
  3. Не надо настраивать никаких серверов, и беспокоиться о масштабировании

Что понадобится?

  • Установленный go
  • Nodejs и npm для установки serverless
  • AWS аккаунт для деплоя

TLDR

  • Клонируем репозиторий https://github.com/R11baka/echotgbot
  • Устанавливаем в .env файле BOT_TOKEN переменную
  • Компилируем бинарник env GOOS=linux go build -o bin/webhook main.go
  • Выгружаем лямбду с помощью sls deploy
  • Устанавливаем webhook с помощью BOT_TOKEN

Регистрация в AWS

  • Регистирируем пользователя в AWS aws console и получаем aws_access_key_id, и aws_secret_access_key и прописываем их в .aws/credentials файле

Вот как выглядит мой .aws/credentials

Пишем TELEGRAM бота на Python


cat ~/.aws/credentials [default] aws_access_key_id = ADEFEFEFFEBDXK3 aws_secret_access_key = Zy6ewfir/zGaT1B2/o9JDWDSssdrla region = us-west-1

Регистрация бота

Для начала, нам надо зарегистировать бота в BotFather. Идем по ссылке, отправляем команду BotFather /newbot , придумываем имя боту, описание. В конце, BotFather вернет нам токен бота.Этот токен понадобится,нам для дальнейшей разработки.

Установка Serverless

Serverless-это framework, облегчающий настройку, деплой AWS Lambda функций. Написан на node, поэтому для его установки понадобится nodejs и npm. Устанавливаем serverless через npm

npm install -g serverless

После установки serverless проверяем, все ли установилось

sls -v Framework Core: 2.35.0 (standalone) Plugin: 4.5.3 SDK: 4.2.2 Components: 3.8.2

Теперь можно приступить к конфигурации serverless. Все настройки для serverless лежат в serverless.yml файле,который мы и создадим со следующим контентом

service: echoBot useDotenv: true configValidationMode: error # если в конфиге,чтото неправильно ,то ошибка frameworkVersion: ‘>=1.28.0 events: — http: path: /webhook method: ANY cors: false

Имлементация логики бота на Go

  1. Устанавливаем библиотеки telebot.v2 и aws-lambda-go

➜ go mod init testBot go: creating new go.mod: module testBot ➜ go get -u gopkg.in/tucnak/telebot.v2 go: gopkg.in/tucnak/telebot.v2 upgrade => v2.3.5 go: github.com/pkg/errors upgrade => v0.9.1 ➜ go get github.com/aws/aws-lambda-go go: github.com/aws/aws-lambda-go upgrade => v1.23.0

2. Создаем файл main.go с контентом

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


package main import ( «encoding/json» «fmt» «github.com/aws/aws-lambda-go/events» «github.com/aws/aws-lambda-go/lambda» tb «gopkg.in/tucnak/telebot.v2» «os» ) func main() < settings := tb.Settings< Token: os.Getenv(«BOT_TOKEN»), Synchronous: true, Verbose: true, >tgBot, err := tb.NewBot(settings) if err != nil < fmt.Println(err) panic(«can’t create bot») >tgBot.Handle(tb.OnText, func(m *tb.Message) < message := m.Text tgBot.Send(m.Sender, message) >) lambda.Start(func(req events.APIGatewayProxyRequest) (events.APIGatewayProxyResponse, error) < var u tb.Update if err = json.Unmarshal([]byte(req.Body), err == nil < tgBot.ProcessUpdate(u) >return events.APIGatewayProxyResponse, nil >) >

Текущая документация в tucnak/telebot.v2 немного устарела, и если просто написать return вместо return events.APIGatewayProxyResponse, nil , то телеграм будет повторно отправлять сообщения к боту.

Deploy бота

  • Создаем файл .env и вставляем API_TOKEN полученный от BotFather

echo API_TOKEN= > .env

Еще по теме:  Визитка Телеграмм QR код

Проверяем serverlss конфиг с помощью команды. Не должно быть никаких ошибок.

sls print

Потом собираем бинарник

env GOOS=linux go build -o bin/webhook main.go

И выгружаем его с помощью serverless

serverless deploy -v

При успешной выгрузке, мы получим в конце

Service Information service: echoBot stage: dev region: us-west-1 stack: echoBot-dev resources: 11 api keys: None endpoints: ANY — https://y7p31bwnu1.execute-api.us-west-1.amazonaws.com/dev/webhook functions: webhook: echoBot-dev-webhook layers: None

Интеграция с telegram

Осталось сообщить телеграму, какой эндпоинт дергать при получении сообщения. Делается это командой setWebhook

curl https://api.telegram.org/bot/setWebhook?url=

Проверка что webhook установлен, происходит с помощью getWebhookInfo

➜ ~ curl https://api.telegram.org/bot1324913549:AAE1zYMH6K3hF2TOgUQoIP-E1g4rMIamck/setWebhook?url= https://y7p31bwnu1.execute-api.us-west-1.amazonaws.com/dev/webhook ➜ ~ curl https://api.telegram.org/bot1324913549:AAE1zYMH6K3hF2TOgUQoIP-E1g4rMIamck/getWebhookInfo >

Ошибки

Если что-то пошло не так,идем в CloudWatch и смотрим логи,или же из консоли также можно посмотреть логи

sls logs -f webhook

Возможно вам будет интересно:

Источник: bookflow.ru

Создание бота в мессенджере Telegram

как сделать бота в телеграмм

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

Как сделать бота в Телеграмм_048

    Откройте мессенджер и либо воспользуйтесь представленной выше ссылкой, либо введите название бота в поисковую строку и откройте чат с ним. Нажмите на кнопку «Запустить».
  • Отправьте указанную ниже команду: /start Как сделать бота в Телеграмм_050
  • Затем либо введите и отправьте вручную, либо выберите в полученном сообщении следующее: /newbot Как сделать бота в Телеграмм_051
  • Придумайте имя (название) для своего бота, введите и отправьте его. В дальнейшем это можно будет изменить. Как сделать бота в Телеграмм_052
  • Теперь придумайте имя пользователя для бота, которое одновременно будет и ссылкой на него. Этот адрес обязательно должен быть уникальным (свободным) и заканчиваться на «_bot». Как сделать бота в Телеграмм_053
  • В ответ вы получите сообщение, содержащее рабочую ссылку на пока еще пустого, ненастроенного бота и токен, который будет использоваться для доступа к HTTP API. Обязательно сохраните его в безопасном месте, так как любой, кто получит доступ к этим данным, сможет управлять вашим ботом. Как сделать бота в Телеграмм_054
  • Шаг 2: Настройка

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

    Как сделать бота в Телеграмм_066

    Как сделать бота в Телеграмм_067

    КомандаОписание
    /setname Изменение отображаемого имени бота
    /setdescription Добавление описания
    /setuserpic Смена аватара
    /setcommands Установка и редактирование перечня команд, на которые бот должен реагировать
    /deletebot Удаление добавленного бота

    Как сделать бота в Телеграмм_068

  • Помимо указанных выше команд, в меню главного бота Телеграм имеются и другие – с их помощью можно интегрировать в свой проект веб-приложения и игры, изменять многие другие параметры и т.д. (напротив каждого пункта имеется описание на английском). Как сделать бота в Телеграмм_069Рассмотрение каждого из них отдельно существенно усложнит инструкцию, а для многих сделает ее излишне подробной, поэтому данную часть настройки по необходимости можете освоить самостоятельно. Мы же представим ниже еще несколько важных команд и перейдем к следующему шагу.
    КомандаОписание
    /token Создание нового токена или замена старого, если оригинальный скомпрометирован
    /setinline Включение inline-режима, при котором бот будет реагировать на соответствующие команды во всех чатах, куда он добавлен
    /setinlinefeedback Ответ на ввод отображением заданных вариантов (показом сообщения-шаблона, изображения, кнопки и т. д.)
    /setprivacy Активация приватного режима, при котором бот будет распознавать исключительно команды и адресованные ему сообщения
    Еще по теме:  Как добавить статтю в Телеграми
  • Шаг 3: Разработка

    Наиболее важный и, наверное, сложный, если говорить о малоопытных пользователях, этап в создании собственного Telegram-бота – его непосредственная разработка. В примере далее нами будет использоваться Python.

    Примечание: pyTelegramBotAPI – библиотека, необходимая для обеспечения работы Telegram-бота, но это не единственное такого рода решение. В качестве альтернативы можете использовать telegram-bot – соответствующая команда для установки указана ниже. По этой библиотеке можно найти довольно много инструкций в интернете, но в нашем случае она работала некорректно.

    pip install python-telegram-bot

    Как сделать бота в Телеграмм_076

    Откройте редактор кода и сделайте следующее:

      Прежде всего импортируйте в него установленную на предыдущем шаге библиотеку. В случае с pyTelegramBotAPI запрос должен выглядеть следующим образом: import telebot

    Обратите внимание! Описанное выше, — это обязательная «основа» для будущего бота. Далее – пример простейшего кода команды запуска и ответа с пояснениями, в вашем случае это может и наверняка будет отличаться, так как зависит исключительно от поставленной задачи.

    Пояснение: Это декоратор для функции send_welcome, который указывает, что она должна выполняться в случае, если пользователь отправляет команду /start. Когда это происходит, бот отвечает приветственным сообщением с текстом «Привет! Я простой бот, рад познакомиться!».

    Пояснение: Этот обработчик, обозначенный декоратором echo_message, будет вызываться для всех текстовых сообщений, которые отправляют пользователи. Когда бот получает текстовое сообщение, он просто повторяет это сообщение обратно отправителю с помощью функции bot.reply_to().

    Как сделать бота в Телеграмм_083

    Завершающая команда – запуск бота: if __name__ == «__main__»:
    bot.polling()

    Пояснение: Эта команда запускает бота и начинает прослушивать входящие обновления от Telegram. Как только пользователь отправит сообщение, обработчики, определенные ранее, будут вызваны и выполнят необходимые действия.

    Как сделать бота в Телеграмм_084

  • Сохраните проект Телеграм-бота в удобном месте на диске ПК (проследите, чтобы в его названии и на пути к нему не содержалось кириллических символов), в формате .py (в нашем случае, так как использовался Python).
  • Шаг 4: Запуск и использование

    Для того чтобы бот работал и был доступен к использованию в Telegram, его необходимо запустить. Сделать это можно с помощью любого варианта системной консоли, будь то «Командная строка», «PowerShell» или «Терминал».

      Перейдите в папку с проектом вашего бота, зажмите клавишу «Shift» на клавиатуре, не отпуская ее, кликните правой кнопкой мышки (ПКМ) в пустой области и, далее, в зависимости от версии используемой операционной системы (в нашем примере – Windows 11) и/или ваших собственных пожеланий, выберите предпочтительный вариант консоли в контекстном меню.

    Как сделать бота в Телеграмм_085
    Введите команду следующего вида и нажмите «Enter»: python your_telegram_bot.py Как сделать бота в Телеграмм_086‘your_telegram_bot’ – название вашего бота, присвоенное ему при сохранении на последнем шаге предыдущей инструкции. Как сделать бота в Телеграмм_087

    Примечание: Вместо выполнения двух предыдущих шагов вы можете самостоятельно запустить консоль, перейти из нее в папку с проектом и выполнить его запуск. Для этого поочередно введите и выполните следующие команды: cd путь_к_папке_с_проектом
    python your_telegram_bot.py

    Как сделать бота в Телеграмм_088

  • Перейдите в Телеграм и проверьте работоспособность своего проекта. Как сделать бота в Телеграмм_089
  • Бот будет работать и даже станет доступным для других пользователей мессенджера, но только тогда, когда он запущен в консоли. Как сделать бота в Телеграмм_090Для остановки достаточно воспользоваться клавишами «Ctrl+C» или просто закрыть окно, для повторного запуска – выполнить действия из двух первых пунктов текущей инструкции. Как сделать бота в Телеграмм_093
  • Еще по теме:  Как засекретить чат в Телеграмме

    Шаг 5: Хостинг

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

    Как сделать бота в Телеграмм_091

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

    хостинг телеграм бот

    Как сделать бота в Телеграмм_092

    Способ 2: Специализированный сервис

    Альтернативой решению от Telegram и последующей самостоятельной разработке будет один из сторонних сервисов, который позволяет как создавать ботов, так и добавлять к ним дополнительную функциональность, причём последнее не требует навыков программирования. Одним из самых удобных решений такого рода является проект Manybot, которым мы и воспользуемся.

    как сделать бота в телеграмм-11

    1. Воспользуйтесь ссылкой выше, а после загрузки страницы нажмите на кнопку «Создать бота».
    2. Далее кликните «Открыть Manybot в Telegram».

    Важно! Этот сервис работает только с клиентским приложением, веб-версия не поддерживается!

    Источник: lumpics.ru

    Что умеет Telegram-бот от Carrot quest и как его настроить

    Что умеет Telegram-бот от Carrot quest и как его настроить

    У нас классная новость! Мы разработали чат-бота в Telegram, чтобы общение бизнеса с клиентами стало еще удобнее.

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

    А если вы прямо сейчас хотите не читать, а уже попробовать чат-бота в Telegram и поделиться с нами обратной связью, напишите нам в чат: «Хочу Telegram-бота».

    Почему бизнесу нужен Telegram-бот

    Telegram в России стал самым популярным мессенджером, а некоторые социальные сети теперь доступны только с VPN. Бизнесу пора включать Telegram наполную и использовать все его возможности:

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

    Бот от Carrot quest — это не просто очередной сервис для запуска Telegram-бота, а возможность общаться с клиентами из всех каналов в одной экосистеме:

    • вся история общения с клиентом собирается в одном сервисе — и с ботом и с операторами;
    • можно связать инструменты Carrot quest между собой и настроить омниканальную коммуникацию с пользователями;
    • собрать чат-бота для Telegram можно за 5 минут в визуальном редакторе, как и любого другого бота в Carrot quest.

    Что умеет Telegram-бот от Carrot quest

    Вы, скорее всего, уже знакомы с нашими ботами на сайте, а вот что умеет Telegram-бот:

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

    Как наш Telegram-бот помогает командам

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