• Telegram bot на Kotlin + Spring через webhook, есть свежий мануал или пример зеркального бота?

    @Lexvalyaev Автор вопроса
    OtBotSpringApplication.kt
    package ru.lex.OtBotSpring
    
    import org.springframework.boot.autoconfigure.SpringBootApplication
    import org.springframework.boot.runApplication
    
    @SpringBootApplication
    class OtBotSpringApplication
    
    fun main(args: Array<String>) {
    	runApplication<OtBotSpringApplication>(*args)
    }


    OtBot.kt
    package ru.lex.OtBotSpring.service
    
    import org.springframework.beans.factory.annotation.Value
    import org.springframework.stereotype.Component
    import org.telegram.telegrambots.bots.TelegramWebhookBot
    import org.telegram.telegrambots.meta.api.methods.BotApiMethod
    import org.telegram.telegrambots.meta.api.methods.send.SendMessage
    import org.telegram.telegrambots.meta.api.objects.Update
    
    @Component
    class OtBot : TelegramWebhookBot() {
    
        @Value("\${telegrambot.botname}")
        private val botName: String= ""
    
        @Value("\${telegrambot.bottoken}")
        private val botToken : String =""
    
        @Value("\${telegrambot.webhookpath}")
        private val botWebHook : String=""
    
        override fun getBotToken(): String = botToken
    
        override fun getBotUsername(): String = botName
    
        override fun onWebhookUpdateReceived(update: Update?): BotApiMethod<*>? {
            if (update != null) {
                if (update.hasMessage())
                {
                    val sendMsg = SendMessage()
                    val message = update.message
                    val chatId = message.chatId
                    val responseText = if (message.hasText()) {
                        val messageText = message.text
                        when {
                            messageText == "/start" -> "Добро пожаловать!"
                            else -> "Вы написали: *$messageText*"
                        }
                    } else {
                        "Я понимаю только текст"
                    }
                    sendMsg.text = responseText
                    sendMsg.chatId = chatId.toString()
                    return sendMsg
    
                }
            }
            return null;
        }
    
        override fun getBotPath(): String = botWebHook
    }


    ну и application.properties

    server.port=8443
    
    telegrambot.bottoken=
    telegrambot.botname=test_my_super_puper_bot
    telegrambot.webhookpath=https://26e9b1e5ff85.ngrok.io


    соттветственно, убрал боттокен и изменил ботнейм.

    60f8415ea193d540583355.jpeg

    не работает бот.. где я туплю?
    Ответ написан
    Комментировать