You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在Google Apps Script中获取Telegram Bot消息ID遇问题求助

解决Google Apps Script Telegram Bot获取message_id的问题

问题根源

  • 原sendMessage函数未返回UrlFetchApp.fetch的响应结果,导致后续调用无法获取数据
  • 错误使用async/await语法:Google Apps Script中的UrlFetchApp.fetch是同步方法,无需异步等待处理

修正后的代码实现

1. 完善sendMessage函数

修改函数,让它返回解析后的Telegram API响应数据:

function sendMessage(chat_id, message) {
  const data = {
    method: "post",
    payload: {
      method: "sendMessage",
      chat_id: String(chat_id),
      text: message,
      parse_mode: "HTML"
    }
  };

  // 发起请求并解析响应为JSON对象
  const response = UrlFetchApp.fetch(teleUrl + "/", data);
  return JSON.parse(response.getContentText());
}

2. 简化测试调用

直接同步调用函数,提取所需的message_id:

function greeting() {
  const apiResponse = sendMessage(chat_id, "HI");
  // 从响应结构中获取message_id
  const messageId = apiResponse.message.message_id;
  Logger.log("发送消息的message_id: " + messageId);
  // 可选:打印完整响应查看结构
  Logger.log("API完整响应: " + JSON.stringify(apiResponse));
}

核心说明

  • Telegram API的sendMessage接口返回的响应中,message字段包含发送完成后的消息详情,message_id字段即为目标ID
  • Google Apps Script内置服务大多为同步执行逻辑,强行使用异步语法会导致未处理的Promise实例,出现空对象输出的问题

内容的提问来源于stack exchange,提问作者Shawn Wei Chew

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.07 12:35:17