如何解决如何在 Telegram Bot 中等待用户的新输入?
我正在为 Telegram 构建一个机器人,以便用户可以将“朋友”添加到电子表格中。 这个想法是,当他们启动机器人时,他们可以简单地写下“朋友”的名字(例如,@friend1 @friend2 @friend3),然后他们就会被添加到一个新的电子表格中。
我正在 Google 电子表格脚本编辑器中书写。
开始声明变量,并设置 webhook。
var token = "token";
var url = "https://api.telegram.org/bot" + token;
var webAppUrl = "spreadhsheetURL"
var ssId = "spreadsheeID";
var myID = "$$$$$$$"
function getMe() {
var response = UrlFetchApp.fetch(url + "/getMe");
Logger.log(response.getContentText());
}
function getUpdates() {
var response = UrlFetchApp.fetch(url + "/getUpdates");
Logger.log(response.getContentText());
}
function setWebhook() {
var response = UrlFetchApp.fetch(url + "/setWebhook?url="+ webAppUrl);
Logger.log(response.getContentText());
}
function sendText(id,text) {
var response = UrlFetchApp.fetch(url + "/sendMessage?chat_id=" + id + "&text=" + encodeURIComponent(text));
Logger.log(response.getContentText());
}
function doGet(e){
return HtmlService.createHtmlOutput("Hello " + JSON.stringify(e));
}
一切正常,但是当我告诉 BOT 询问用户是否想要添加新朋友时,程序不会等待用户写入并给出最后一个 else 的“错误”。
function doPost(e){
try{
var contents = JSON.parse(e.postData.contents);
var text = contents.message.text;
var id = contents.message.from.id;
var name = contents.message.from.username;
sendText(id,"Hi " + name + " do you want to add more friends? (Yes/No)");
if(text == "Yes"){
sendText(id,"Add new friends (e.g.,@friend1 @friend2 @friend3)).");
var sheetName = name;
var newText = text.split(" ").slice(1).join(" ");
//check if already exist the spreadshet
var sheet = ss.getSheetByName(sheetName) ? ss.getSheetByName(sheetName) : ss.insertSheet(sheetName);
// check the number of words (friends)
var str_len = newText.split(" ").length;
// Print friends per row
for (i=0; i<str_len; i++){
sheet.appendRow([new Date(),id,name,newText.split(" ")[i]]);
}
sendText(id,"The user " + newText + " was added to your list " + sheetName + " with success.");
}else{
if(text == "No"){
sendText(id,"Thank you.")
}else{
sendText(id,"Error.")
}
}
var ss = SpreadsheetApp.openById(ssId);
}catch(e){
sendText(myID,JSON.stringify(e,null,4));
}
}
想知道是否有人可以帮助我。
谢谢
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。