如何完成Telegram机器人与Google Apps Script的对接?附代码片段
嘿,看你已经在搞Telegram机器人对接Google Sheets的活儿了,我帮你把现有代码规整成清晰的格式,还补全了没写完的setWebhook函数实现,方便你继续推进:
核心配置与代码实现
var token = ""; // FILL IN YOUR OWN TOKEN var telegramUrl = "https://api.telegram.org/bot" + token; var webAppUrl = ""; // FILL IN YOUR GOOGLE WEB APP ADDRESS var ssId = ""; // FILL IN THE ID OF YOUR SPREADSHEET // 验证机器人Token有效性 function getMe() { var url = telegramUrl + "/getMe"; var response = UrlFetchApp.fetch(url); Logger.log(response.getContentText()); } // 设置Telegram Webhook(补全实现) function setWebhook() { var url = telegramUrl + "/setWebhook?url=" + encodeURIComponent(webAppUrl); var response = UrlFetchApp.fetch(url); Logger.log(response.getContentText()); } // 接收Telegram消息的Webhook入口(常用补充) function doPost(e) { var data = JSON.parse(e.postData.contents); var chatId = data.message.chat.id; var messageText = data.message.text; // 这里可以添加消息处理逻辑,比如写入Google Sheets var sheet = SpreadsheetApp.openById(ssId).getActiveSheet(); sheet.appendRow([new Date(), chatId, messageText]); // 可选:回复用户消息 sendMessage(chatId, "消息已记录!"); } // 封装发送消息的函数(常用补充) function sendMessage(chatId, text) { var url = telegramUrl + "/sendMessage?chat_id=" + chatId + "&text=" + encodeURIComponent(text); UrlFetchApp.fetch(url); }
几个关键提醒
- 先把
token、webAppUrl、ssId这三个空字段替换成你自己的信息:token是BotFather给你的机器人令牌webAppUrl是你部署Google Apps Script后得到的Web应用地址ssId是Google Sheets文档URL里的那段长字符串
- 部署Web App的时候,一定要把访问权限设为“任何人,甚至匿名”,不然Telegram的webhook请求会被Google拦截
- 先运行
getMe函数,去查看日志确认机器人能正常连通Telegram API - 设置webhook后,可以发一条测试消息给机器人,看看Google Sheets里有没有新增记录
内容的提问来源于stack exchange,提问作者honeyhill
相关产品推荐
相关产品推荐

