mirror of
				https://github.com/InsanusMokrassar/TelegramBotAPI.git
				synced 2025-11-03 21:50:13 +00:00 
			
		
		
		
	
			
				
					
						
					
					fde2c79f4c2f657b9795e875bf2636370cca3f62
				
			
			
		
	TelegramBotAPI 
 
Hello! This is a set of libraries for working with Telegram Bot API.
Examples
There are several things you need to do to launch examples below:
- Add 
mavenCentral()to your project repositories - Add dependency 
implementation "dev.inmo:tgbotapi:$tgbotapi_version"- Replace 
tgbotapi_versionwith exact version (see last one in the table above) or put variable with this name in project - Alternative variant for maven here
 
 - Replace 
 
More including instructions available here. Other configuration examples:
Most common example
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
Handling only last messages
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)
Build a little bit more complex behaviour
suspend fun main() {
  val bot = telegramBot(TOKEN)
  bot.buildBehaviourWithLongPolling {
    println(getMe())
    val nameReplyMarkup = ReplyKeyboardMarkup(
      matrix {
        row {
          +SimpleKeyboardButton("nope")
        }
      }
    )
    onCommand("start") {
      val photo = waitPhoto(
        SendTextMessage(it.chat.id, "Send me your photo please")
      ).first()
      val name = waitText(
        SendTextMessage(
          it.chat.id,
          "Send me your name or choose \"nope\"",
          replyMarkup = nameReplyMarkup
        )
      ).first().text.takeIf { it != "nope" }
      sendPhoto(
        it.chat,
        photo.mediaCollection,
        entities = buildEntities {
          if (name != null) regular(name) // may be collapsed up to name ?.let(::regular)
        }
      )
    }
  }.join()
}
More examples
You may find examples in this project. Besides, you are always welcome in our wiki and chat.
Description
				Type-safe library for work with Telegram Bot API
						
						
						
							
							dev-inmo-tgbotapihacktoberfesthacktoberfest-2021hacktoberfest2020hacktoberfest2021kotlinkotlin-jskotlin-jvmkotlin-librarykotlin-multiplatformtelegramtelegram-bot-apitelegrambotapitgbotapi
						
						
						
							
								 Readme
							
						
						
							
								 Apache-2.0
							
						
						
						
							
							
							 202 MiB
						
					
					Languages
				
				
								
								
									Kotlin
								
								100%