ktgbotapi
34.0.0indexedSet of libraries for interacting with the Telegram Bot API, featuring examples for commands, handling updates, and building complex behaviors with long polling. Offers extensive documentation and community support.
Set of libraries for interacting with the Telegram Bot API, featuring examples for commands, handling updates, and building complex behaviors with long polling. Offers extensive documentation and community support.
Hello! This is a set of libraries for working with Telegram Bot API.
There are several things you need to do to launch examples below:
mavenCentral() to your project repositories
implementation "dev.inmo:tgbotapi:$tgbotapi_version"
More including instructions available here. Other configuration examples:
suspend fun main() {
val bot = telegramBot(TOKEN)
bot.buildBehaviourWithLongPolling {
println(getMe())
onCommand("start") {
reply(it, "Hi:)")
}
}.join()
}
In this example you will see information about this bot at the moment of starting and answer with Hi:) every time it
gets message /start
suspend fun main() {
val bot = telegramBot(TOKEN)
val flowsUpdatesFilter = FlowsUpdatesFilter()
bot.buildBehaviour(flowUpdatesFilter = flowsUpdatesFilter) {
println(getMe())
onCommand("start") {
reply(it, "Hi:)")
}
retrieveAccumulatedUpdates(this).join()
}
}
The main difference with the previous example is that bot will get only last updates (accumulated before bot launch and maybe some updates it got after launch)
suspend fun main() {
val bot = telegramBot(TOKEN)
bot.buildBehaviourWithLongPolling {
println(getMe())
val nameReplyMarkup = ReplyKeyboardMarkup(
matrix {
row {
+SimpleKeyboardButton()
}
}
)
onCommand() {
photo = waitPhoto(
SendTextMessage(it.chat.id, )
).first()
name = waitText(
SendTextMessage(
it.chat.id,
,
replyMarkup = nameReplyMarkup
)
).first().text.takeIf { it != }
sendPhoto(
it.chat,
photo.mediaCollection,
entities = buildEntities {
(name != ) regular(name)
}
)
}
}.join()
}
You may find examples in this project. Besides, you are always welcome in our docs and chat.
Under the hood, default bots realizations will try to use links (PathedFile#filePath) as files each time you are trying to download file from telegram in any way - via saving to file, use stream or download as byte array. To let bot correctly download files from bot api server, you must:
tgbotapi_version with exact version (see last one in the table above) or put variable with this name in project101 UID/GID in linux for user and group as owners. So, your bot must run under user included in 101 group
(like systemd-journal) or be 101 UID user (like systemd-resolve)Surfaced from shared tags and platforms — no rankings paid for.