Telegrammer
Telegram Bot Framework written in Swift 5.1 with SwiftNIO network framework
What does it do
Telegrammer is open-source framework for Telegram Bots developers. It was built on top of Apple/SwiftNIO
Join to our Telegram developers chat Join to our Telegrammer channel on Vapor Discord server
The simplest code of Echo Bot looks like this:
main.swift
import Foundation
import Telegrammer
do {
let bot = try Bot(token: "BOT_TOKEN_HERE")
let echoHandler = MessageHandler { (update, _) in
_ = try? update.message?.reply(text: "Hello \(update.message?.from?.firstName ?? "anonymous")", from: bot)
}
let dispatcher = Dispatcher(bot: bot)
dispatcher.add(handler: echoHandler)
_ = try Updater(bot: bot, dispatcher: dispatcher).startLongpolling().wait()
} catch {
exit(1)
}
Documentation
- Read An official introduction for developers
- Check out bot FAQ
- Official Telegram Bot API
Usage without Vapor
- Use the template repository as a example https://github.com/givip/telegrammer-bot-template.git
- Current repository contains five examples of bot implementation: https://github.com/givip/Telegrammer/tree/master/Sources/DemoEchoBot https://github.com/givip/Telegrammer/tree/master/Sources/DemoHelloBot https://github.com/givip/Telegrammer/tree/master/Sources/DemoSchedulerBot https://github.com/givip/Telegrammer/tree/master/Sources/DemoSpellCheckerBot https://github.com/givip/Telegrammer/tree/master/Sources/DemoWebhooksLocally
Usage with Vapor
Demo bots
All sample bots
- Add Telegram Token in Environment Variables, so, either create an environment variable:
$ export TELEGRAM_BOT_TOKEN='000000000:AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA'
- Run Bot executable scheme or
$ swift run
EchoBot sources Starts/stops with command "/echo", then simply responds with your message
HelloBot sources Says "Hello" to new users in group. Responds with "hello" message on command "/greet"
SchedulerBot sources Demonstrate Jobs Queue scheduling mechanism. Command "/start X" starts repeatable job, wich will send you a message each X seconds. Command "/once X" will send you message once after timeout of X seconds. Command "/stop" stops JobsQueue only for you. Other users continues to receive scheduled messages.
SpellCheckerBot sources Demonstrate how works InlineMenus and Callback handlers. Command "/start" will start bot. Send any english text to bot and it will be checked for mistakes. Bot will propose you some fixes in case of found mistake.
Requirements
- Ubuntu 16.04 or later with Swift 5.1 or later / macOS with Xcode 11 or later
- Telegram account and a Telegram App for any platform
- Swift Package Manager (SPM) for dependencies
- Vapor 4 (optionally, for bots with database and other server side stuff)
Contributing
See CONTRIBUTING.md file.
Author
Givi Pataridze
pataridzegivi@gmail.com @givip