如何收听Telegram Bot错误? (Google App Script + Webhooks)

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何收听Telegram Bot错误? (Google App Script + Webhooks)相关的知识,希望对你有一定的参考价值。

我开发了一个功能齐全的Telegram Bot,其中包含使用Webhooks读取和写入Google电子表格的Google App Script。

虽然机器人是稳定的,但有时它会因特定的用户交互而崩溃,例如按下按钮太快或者机器人在很短的时间内发送太多消息。

Error Handling section of the 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)函数来监听所有机器人错误?

答案

由于我们目前正在谈论电报 - 它可能对其他人有帮助。 谈话始于https://t.me/BotTalk/105298


tl;dr你需要在你的最后做错误处理。如果您不使用库,请在发出错误请求后尝试检查Telegram中的每个响应。如果有错误,请相应地处理它们。

以上是关于如何收听Telegram Bot错误? (Google App Script + Webhooks)的主要内容,如果未能解决你的问题,请参考以下文章

Telegram Bot 收到“错误请求:消息文本为空”

Telegram bot api:错误代码 429,错误:请求太多:稍后重试

PHP telegram bot:错误的请求:找不到编辑消息

Telegram Bot API:缺少语音消息音频频谱图。一个错误?

我在使用 Telepot 运行 Telegram Bot 时遇到问题

无效的 webhook url 在 Telegram bot 中指定错误