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

时间:2019-01-04 00:35:37

标签: javascript google-apps-script error-handling webhooks telegram-bot

我用Google App Script开发了功能齐全的Telegram Bot,该脚本使用Webhooks读写Google Spreadsheet。

尽管漫游器很稳定,但有时由于特定的用户交互而崩溃,例如过快地按下按钮或使漫游器在短时间内发送太多消息。

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)的函数(用于监听更新)来监听所有漫游器错误?

1 个答案:

答案 0 :(得分:0)

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


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