Example Bare Minimum Simple Telegram Client - OTR/Kotlin-Telegram-Client GitHub Wiki
package com.example
import it.tdlight.client.APIToken
import it.tdlight.client.AuthenticationData
import it.tdlight.client.SimpleTelegramClient
import it.tdlight.client.TDLibSettings
import it.tdlight.common.ExceptionHandler
import it.tdlight.common.Init
import it.tdlight.jni.TdApi
import it.tdlight.jni.TdApi.AuthorizationState
import kotlin.io.path.Path
/**
* FIXME: Aint working yet
*/
private class MyTelegramClient {
val client: SimpleTelegramClient = SimpleTelegramClient(
TDLibSettings.create(APIToken.example()).apply {
databaseDirectoryPath = Path("tdlib")
isMessageDatabaseEnabled = true
}
)
}
fun main() {
Init.start()
val client: SimpleTelegramClient = MyTelegramClient().client
client.start(AuthenticationData.consoleLogin())
client.addUpdateExceptionHandler { ExceptionHandler {
println("${it.message} ${it.cause}")
} }
client.addUpdateHandler(TdApi.UpdateAuthorizationState::class.java) {updateState ->
updateHandler(updateState)
}
client.waitForExit()
}
private fun updateHandler(updateState: TdApi.UpdateAuthorizationState) {
val authState: AuthorizationState = updateState.authorizationState
when (authState) {
is TdApi.AuthorizationStateReady -> {
client.send(TdApi.SendMessage().apply {
chatId = System.getenv("TELEGRAM_RECIPIENT_CHAT_ID").toLong()
inputMessageContent = TdApi.InputMessageText().apply {
text = TdApi.FormattedText().apply { text = "Oh, Hi mark" }
}
}) {
// Result Handler
}
}
else -> println(authState.toString())
}
}