Telegram Bot Framework written in Swift with SwiftNIO network framework
Telegrammer
Telegram Bot Framework written in Swift 5.0 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 which help to demonstrate excellent performance.
SwiftNIO is a cross-platform asynchronous event-driven network application framework for rapid development of maintainable high performance protocol servers and clients.
Also Telegrammer use some submodules of Vapor 3 server side swift framework
Join to our Telegram developers chat
Join to our Telegrammer channel on Vapor Discord server
It's easy, from scratch
main.swift
import Telegrammer
let bot = try! Bot(token: "BOT_TOKEN_HERE")
let commandHandler = CommandHandler(commands: ["/hello"], callback: { (update, _) in
guard let message = update.message, let user = message.from else { return }
try! message.reply(text: "Hello \(user.firstName)", from: bot)
})
let dispatcher = Dispatcher(bot: bot)
dispatcher.add(handler: commandHandler)
_ = try! Updater(bot: bot, dispatcher: dispatcher).startLongpolling().wait()
Documentation
- Read An official introduction for developers
- Check out bot FAQ
- Official Telegram Bot API
HOWTO Guides
Usage without Vapor
- Create package with Swift Package Manager (SPM)
$ mkdir MyBot
$ cd MyBot
$ swift package init --type executable
- Define Dependencies in Package.swift file
let package = Package(
name: "MyBot",
dependencies: [
.package(url: "https://github.com/givip/Telegrammer.git", from: "0.5.0")
],
targets: [
.target( name: "MyBot", dependencies: ["Telegrammer"])
]
)
- Resolve dependencies
$ swift package resolve
- Generate XCode project (for macOS only)
$ swift package generate-xcodeproj
- Open in XCode (for macOS only)
$ open MyBot.xcodeproj
You project is ready to create new Telegram Bot.
If you need more help through this steps, you can read How to create a Telegram bot with Telegrammer on Ubuntu / macOS
Usage with Vapor
You may also use previous way to create project with Vapor, only include Vapor as dependency in Package.swift
- Install Vapor CLI
$ brew install vapor/tap/vapor
- Create Vapor project with Telegrammer template
$ vapor new MyBot --template=https://github.com/givip/telegram-bot-template
- Generate XCode project
$ vapor xcode
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