javascript - 如何让我的 Google App Script 在电报机器人中等待答案,然后运行 if 语句?
问题描述
如何让我的 Google App Script 在电报机器人中等待答案并在if
之后运行我的语句?
我对代码的想法是:当我输入/survey
时,它将运行以下代码,该代码将发布一个问题,“你好吗?”。该脚本将等待我输入任何文本,然后if
在输入答案时运行我的语句。
function survey(data){
var Q1 = {
'chat_id': data.message.chat.id,
'text': 'how are you?'
}
var method = 'sendMessage';
var options = {
'method' : 'post',
'contentType': 'application/json',
'payload' : JSON.stringify(Q1)
}
var response = UrlFetchApp.fetch('https://api.telegram.org/bot' + telegramToken + '/' + method, options);
var text = data.message.text;
if(text == ""){
currentstep = '3'; //need help here
}
解决方案
您可以使用Promises或async/await,这样您的IF语句将等待API的响应并在您收到响应后立即执行。
async function survey(data){
var Q1 = {
'chat_id': data.message.chat.id,
'text': 'how are you?'
}
var method = 'sendMessage';
var options = {
'method' : 'post',
'contentType': 'application/json',
'payload' : JSON.stringify(Q1)
}
var response = await UrlFetchApp.fetch('https://api.telegram.org/bot' + telegramToken + '/' + method, options);
var text = data.message.text;
if(text == ""){
currentstep = '3'; //need help here
}
或者
function survey(data){
var Q1 = {
'chat_id': data.message.chat.id,
'text': 'how are you?'
}
var method = 'sendMessage';
var options = {
'method' : 'post',
'contentType': 'application/json',
'payload' : JSON.stringify(Q1)
}
UrlFetchApp.fetch('https://api.telegram.org/bot' + telegramToken + '/' + method, options).then((data)=>{
var text = data.message.text;
if(text == ""){
currentstep = '3'; //need help here
}
})
}
推荐阅读
- javascript - 如何让我的开始和停止按钮使用 javascript 工作?
- javascript - 在特定时间后运行一次任务 - 节点 js
- android - 当用户进入地理围栏或居住在地理围栏内时,应用程序意外关闭
- javascript - 用户单击选定按钮时显示详细信息
- powerbi - 隐藏和取消选择“启用加载”有什么区别?
- flutter - 在 Flutter 的屏幕之间传递 Hive 框
- android - 视图ID的整数值在android中是否始终不变?
- machine-learning - 使用具有多个自变量的分类模型进行预测
- laravel - Bangla 字体显示不匹配 - Laravel Dompdf
- ruby - 得到这个'未定义的方法'获取''