Bot do Telegram em Swift: guia passo a passo para corajosos
\n\nOlá, 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\nPor que Swift para um bot do Telegram? Quebrando estereótipos
\n\nAntes 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\nPasso 1: Preparação do ambiente
\n\nPrecisaremos 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\nbrew install vapor\n\nApós a instalação, verifique a versão:
\n\nvapor --version\n\nViu o número da versão? Ótimo. Agora vamos criar um novo projeto:
\n\nvapor new TelegramBotSwift --template web\ncd TelegramBotSwift\n\nA 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.
Passo 2: Conectando a Telegram Bot API
\n\nPara 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:
// 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\nAgora 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.
Passo 3: Escrevendo o primeiro bot em Swift
\n\nAbra o arquivo Sources/App/configure.swift. Este é o ponto de entrada. Vamos escrever a estrutura básica:
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