Примеры создания ботов
Вы можете изучить демонстрационных ботов, которые размещены в наших репозиториях
-
Бот, демонстрирующий основные возможности Bot API через интерактивные сценарии
-
To-do list — бот в формате простого таск-менеджера
Примеры создания Hello-бота с помощью библиотек JavaScript и Golang
В этом разделе разберём пример реализации простого бота с использованием библиотеки MAX Bot API — напишем код для Hello Bot, чтобы научить его здороваться с пользователями
Больше примеров смотрите в наших репозиториях на GitHub:
- Создайте новый проект в терминале и установите библиотеку:
# Создание папки
mkdir my-first-bot
# Переход в созданную папку
cd my-first-bot
# Установка MAX Bot API
# Для npm
npm install --save @maxhub/max-bot-api
# Для yarn
yarn add @maxhub/max-bot-api
# Для pnpm
pnpm add @maxhub/max-bot-api
# Для deno
deno add npm:@maxhub/max-bot-api
# Установка и настройка TypeScript (опционально)
yarn add -D typescript
npx tsc --init# Создание папки для исходного кода Golang-модуля
mkdir my-first-bot
# Переход в созданную папку
cd my-first-bot
# Запуск модуля — в результате будет создан файл `go.mod` для отслеживания зависимостей вашего кода
go mod init first-max-bot
# Установка библиотеки для работы с MAX API на Golang
go get github.com/max-messenger/max-bot-api-client-go/v2-
Создайте файл:
- для JavaScript —
bot.js, для TypeScript —bot.ts - для Golang —
bot.go
- для JavaScript —
-
Обеспечьте доступ к методам и утилитам
// Создание объекта класса Bot, который обеспечит доступ к методам и утилитам
filename="bot.js"
import { Bot } from '@maxhub/max-bot-api';
const bot = new Bot(process.env.BOT_TOKEN); // Токен, полученный при регистрации бота в MAX
bot.start(); // Запуск получения обновлений
// Создание функции main в пакете main — он обеспечит доступ к методам и утилитам
filename="bot.go"
package main
import (
"context"
"fmt"
"net/http"
"os"
"time"
maxbot "github.com/max-messenger/max-bot-api-client-go/v2"
)
func main() {
ctx := context.Background()
opts := []maxbot.Opt{
maxbot.WithHTTPClient(&http.Client{Timeout: 10 * time.Second}),
}
api, err := maxbot.NewApi(os.Getenv("TOKEN"), opts...)
if err != nil {
fmt.Println("api initial err:", err)
return
}
info, err := api.Bots.GetMyInfo(ctx)
fmt.Printf("Get me: %#v %#v", info, err)
}- Определите функциональность приветствия — бот будет отвечать на команду
/hello
filename="bot.js"
import { Bot } from '@maxhub/max-bot-api';
const bot = new Bot(process.env.BOT_TOKEN);
// Определение команд, которые пользователь будет видеть в чате с ботом
bot.api.setMyCommands([
{
name: 'hello',
description: 'Поприветствовать бота',
},
]);
// Обработчик команды '/hello'
bot.command('hello', (ctx) => {
return ctx.reply('Привет! ✨');
});
bot.start();filename="bot.go"
package main
import (
"fmt"
maxbot "github.com/max-messenger/max-bot-api-client-go"
)
func main() {
api := maxbot.New(os.Getenv("TOKEN"))
info, err := api.Bots.GetBot()
fmt.Printf("Get me: %#v %#v", info, err)
ctx, cancel := context.WithCancel(context.Background())
go func() {
exit := make(chan os.Signal)
signal.Notify(exit, os.Kill, os.Interrupt)
<-exit
cancel()
}()
// Чтение из канала с обновлениями
for upd := range api.GetUpdates(ctx) {
// Определение типа полученного обновления
switch upd := upd.(type) {
case *schemes.MessageCreatedUpdate:
// Отправка сообщения
_, err := api.Messages.Send(maxbot.NewMessage().SetChat(upd.Message.Recipient.ChatId).SetText("Привет! ✨"))
}
}
}- Протестируйте бота — отправьте команду
/hello
Чат с Hello Bot
Готово! Вы написали простого и дружелюбного Hello Bot
Воспользуйтесь возможностями и инструментами платформы MAX, чтобы запустить на платформе собственные проекты
Если у вас возникли вопросы, посмотрите раздел с ответами