Telegram Bot Framework written in Swift 4.1 with SwiftNIO network framework
What does it do • Documentation • HOWTO Guides • Usage without Vapor • Usage with Vapor • Demo bots • Requirements • Contributing • Author •
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
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("Hello \(user.firstName)", from: bot)
})
let dispatcher = Dispatcher(bot: bot)
dispatcher.add(handler: commandHandler)
_ = try! Updater(bot: bot, dispatcher: dispatcher).startLongpolling().wait()
- Read An official introduction for developers
- Check out bot FAQ
- Official Telegram Bot API
- 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.4.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
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
- Add Telegram Token in Environment Variables, so, either create an environment variable:
$ export TELEGRAM_BOT_TOKEN='000000000:AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA'
- Run EchoBot executable scheme or
$ swift run
- Send /echo command to bot
- Ubuntu 14.04 or later with Swift 4.1 or later / macOS with Xcode 9.3 or later
- Telegram account and a Telegram App for any platform
- Swift Package Manager (SPM) for dependencies
- Vapor 3 (optionally, for bots with database and other server side stuff)
See CONTRIBUTING.md file.
Givi Pataridze