From fd67eb99eb81564ed810d8ef9ac3190ca0764685 Mon Sep 17 00:00:00 2001 From: LamGC Date: Mon, 18 Dec 2023 22:20:43 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E5=9C=A8=E5=90=AF=E5=8A=A8=E6=9C=BA?= =?UTF-8?q?=E5=99=A8=E4=BA=BA=E6=97=B6=E8=B0=83=E7=94=A8=20GetMe=20?= =?UTF-8?q?=E6=8E=A5=E5=8F=A3,=20=E4=BB=A5=E6=A3=80=E6=9F=A5=20Token=20?= =?UTF-8?q?=E6=9C=89=E6=95=88=E6=80=A7.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 通过这种方式, 可以帮助用户在启动阶段发现 Bot Token 无效的问题. --- scalabot-app/src/main/kotlin/AppMain.kt | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/scalabot-app/src/main/kotlin/AppMain.kt b/scalabot-app/src/main/kotlin/AppMain.kt index ad094a1..addcb39 100644 --- a/scalabot-app/src/main/kotlin/AppMain.kt +++ b/scalabot-app/src/main/kotlin/AppMain.kt @@ -9,6 +9,8 @@ import net.lamgc.scalabot.util.registerShutdownHook import org.eclipse.aether.repository.LocalRepository import org.telegram.telegrambots.bots.DefaultBotOptions import org.telegram.telegrambots.meta.TelegramBotsApi +import org.telegram.telegrambots.meta.api.methods.GetMe +import org.telegram.telegrambots.meta.exceptions.TelegramApiRequestException import org.telegram.telegrambots.meta.generics.BotSession import org.telegram.telegrambots.updatesreceivers.DefaultBotSession import java.io.File @@ -135,7 +137,11 @@ internal class Launcher( launchBot(botConfig) launchedCounts++ } catch (e: Exception) { - log.error(e) { "机器人 `${botConfig.account.name}` 启动时发生错误." } + if (e is TelegramApiRequestException && e.errorCode == 401) { + log.error { "机器人 `${botConfig.account.name}` 的 Bot Token 无效, 请检查配置: [${e.errorCode}] ${e.apiResponse}" } + } else { + log.error(e) { "机器人 `${botConfig.account.name}` 启动时发生错误." } + } } } return if (launchedCounts != 0) { @@ -201,6 +207,10 @@ internal class Launcher( extensionPackageFinders, botConfig ) + + val botUser = bot.execute(GetMe()) + log.debug { "已验证 Bot Token 有效性, Bot Username: ${botUser.userName}" } + botSessionMap[bot] = botApi.registerBot(bot) log.info { "机器人 `${bot.botUsername}` 已启动." }