Criando um bot do Telegram em Swift: da ideia ao deploy

Treinador Online de Python para Iniciantes

Aprenda Python facilmente sem sobrecarga teórica. Resolva tarefas práticas com verificação automática e escreva código diretamente no navegador.

Start Course

Bot do Telegram em Swift: guia passo a passo para corajosos

\n\n

Olá, desenvolvedor! Se você acha que bots do Telegram são escritos apenas em Python ou JavaScript — tenho uma novidade para você. O Swift, que você tanto ama pela elegância e desempenho, é excelente para desenvolvimento server-side. Sim, esse mesmo Swift que você usa para escrever aplicativos iOS pode funcionar no backend. Neste guia, criaremos um bot do Telegram em Swift do zero, usando Vapor — um poderoso framework web. O bot responderá a comandos, processará mensagens e até enviará imagens. Vamos lá!

\n\n

Por que Swift para um bot do Telegram? Quebrando estereótipos

\n\n

Antes de mergulhar no código, vamos entender por que escrever um bot em Swift. Primeiro, se você é desenvolvedor iOS, já conhece a linguagem. Não precisa aprender Python ou JS do zero. Segundo, Swift é segurança de tipos e velocidade. O bot funcionará rápido e sem surpresas. Terceiro, o ecossistema Vapor permite integração fácil com bancos de dados, envio de notificações e até parsing de JSON. E sim, a Telegram Bot API em Swift funciona perfeitamente. O principal é configurar corretamente o ambiente.

\n\n

Passo 1: Preparação do ambiente

\n\n

Precisaremos de Xcode (no mínimo versão 14), Homebrew e Vapor. Se você já tem Xcode — ótimo. Se não — baixe da Mac App Store. Agora vamos instalar o Vapor:

\n\n
brew install vapor
\n\n

Após a instalação, verifique a versão:

\n\n
vapor --version
\n\n

Viu o número da versão? Ótimo. Agora vamos criar um novo projeto:

\n\n
vapor new TelegramBotSwift --template web\ncd TelegramBotSwift
\n\n

A flag --template web criará a estrutura de um aplicativo server-side. Se quiser minimalismo — use --template api. Seguiremos o caminho da aplicação web para ter mais flexibilidade.

\n\n

Passo 2: Conectando a Telegram Bot API

\n\n

Para trabalhar com o Telegram, precisaremos de uma biblioteca. Existem várias opções: TelegramBotSDK do Vapor, SwiftTelegramBot ou requisições HTTP puras. Recomendo o TelegramBotSDK — é estável e documentado. Vamos adicioná-lo ao Package.swift:

\n\n
// swift-tools-version:5.9\nimport PackageDescription\n\nlet package = Package(\n    name: "TelegramBotSwift",\n    platforms: [.macOS(.v12)],\n    dependencies: [\n        .package(url: "https://github.com/vapor/vapor.git", from: "4.0.0"),\n        .package(url: "https://github.com/vapor/telegram-bot-sdk.git", from: "2.0.0")\n    ],\n    targets: [\n        .executableTarget(\n            name: "App",\n            dependencies: [\n                .product(name: "Vapor", package: "vapor"),\n                .product(name: "TelegramBotSDK", package: "telegram-bot-sdk")\n            ]\n        )\n    ]\n)
\n\n

Agora vamos obter o token para o bot. Abra o Telegram, encontre o BotFather, escreva /newbot, siga as instruções. Salve o token — você precisará dele em um minuto.

\n\n

Passo 3: Escrevendo o primeiro bot em Swift

\n\n

Abra o arquivo Sources/App/configure.swift. Este é o ponto de entrada. Vamos escrever a estrutura básica:

\n\n
import Vapor\nimport TelegramBotSDK\n\npublic func configure(_ app: Application) throws {\n    // Obtém o token das variáveis de ambiente\n    guard let token = Environment.get("TELEGRAM_BOT_TOKEN") else {\n        fatalError("TELEGRAM_BOT_TOKEN não encontrado")\n    }\n    \n    // Inicializa o bot\n    let bot = TelegramBot(token: token, app: app)\n    \n    // Manipulador do comando /start\n    bot.onCommand("start") { context in\n        try await context.sendMessage("Olá! Sou um bot em Swift. Como posso ajudar?")\n    }\n    \n    // Manipulador do comando /help\n    bot.onCommand("help") { context in\n        try await context.sendMessage("Comandos disponíveis:\\n/start - iniciar\\n/help - ajuda\\n/echo [texto] - repetir mensagem")\n    }\n    \n    // Manipulador do comando /echo\n                

Blogs

Book Recommendations