如何收听Telegram Bot错误?(谷歌应用程序脚本+网络挂钩)



我用谷歌应用程序脚本开发了一个功能齐全的Telegram Bot,它使用Webhook读取和写入谷歌电子表格。

尽管机器人程序是稳定的,但有时它会由于特定的用户交互而崩溃,比如按下按钮太快或使机器人程序在短时间内发送太多消息。

Telegram API的错误处理部分提到,rpc_Error构造函数中会返回错误,但没有引用任何可用于侦听任何可能发生的错误的方法。

我想处理这些错误,但我知道的唯一方法是监听每个API请求上的错误。

下面是一个我现在如何处理错误的例子:

function editKeyboardMessage(buttonArray) {
var id = PropertiesService.getUserProperties().getProperty("inline_form_chat_id");
var message_id = PropertiesService.getUserProperties().getProperty("inline_form_message_id");
var keyboardMarkup = {"inline_keyboard": buttonArray};
var data = {
method: "post",
payload: {
method: "editMessageReplyMarkup",
chat_id: String(id),
message_id: Number(message_id),
parse_mode: "HTML",
reply_markup: JSON.stringify(keyboardMarkup)
}
};
var response = UrlFetchApp.fetch(url + "/", data)
var responseCode = response.getResponseCode()
handleErrors(responseCode)
}

然而,在所有请求类型上都这样做似乎是不现实的,而且它不允许完全的错误处理(比如独立于请求发生的错误,例如消息泛滥)。

预期的结果是在一个地方正确处理所有传入的错误。有没有一种方法可以通过类似于用于侦听更新的doPost(e)函数来侦听所有机器人程序错误?

由于我们目前正在Telegram上交谈,这可能对其他人有所帮助
对话开始于https://t.me/BotTalk/105298


tl;dr您需要在您的端上进行错误处理。如果你不使用库,请尝试在发送错误请求后检查Telegram的每个响应。如果出现错误,请相应地进行处理。

最新更新