givip / Telegrammer
Programming Languages
Projects that are alternatives of or similar to Telegrammer
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