【问题标题】:Google App Script - Telegram bot - bot doesn't react with callback_dataGoogle App Script - Telegram bot - bot 不响应 callback_data
【发布时间】:2020-09-14 04:37:21
【问题描述】:

我对 GAS 很陌生,并试图用文本命令和键盘编写一个 Telegram 机器人,但是当我按下键盘时它没有给我结果。 (文本命令有效)。

我做错了什么?感谢您阅读并帮助我。

这是我的代码:

function doPost(e) {
  var contents = JSON.parse(e.postData.contents);
  var keyBoard = {
    "inline_keyboard": [
      [{
        "text": "Edit",
        'callback_data': 'edit'
      }]
    ]
  };  
  var text = contents.message.text;
  var id = contents.message.from.id;
  var user = contents.message.from.username;
  var Filter = CTask.getRange('I:I').getValues();
  var NV = CTask.getRange('J:J').getValues();
  var tasks = [];
  var STT = [];
  var list = [];
  for (var x = 1 ; (x < lastrow) && (Filter[x] == "Giao việc"); x++) {
    tasks.push(NV[x]);
    STT.push(x + ")" + " ");
    tasks.sort();
  };
  for (var y = 0 ; y < tasks.length; y++) { 
    list.push(STT[y]+tasks[y]);
    var taskslist = list.join("\n");
  };  
  if (contents.callback_query) {
    var id_callback = contents.callback_query.from.id;
    var data = contents.callback_query.data;    
    if (data == 'edit') {
      sendText(id_callback,"P is your allocated budget for the week" );
    }     
  } else if (contents.message) {
    if((text.substring(0,5) != "/task") && (text.substring(0,5) != "/list")) {      
      sendText(id, '@'+user + " Bạn đã gọi sai cú pháp");
    } else if (text.substring(0,5) == "/task") { 
      CTask.appendRow([new Date(), user, text]);
    }  
    // Lệnh xem list
    else if ((text.substring(0,5) == "/list") && (text.length == 5)) {      
      sendText(id,  decodeURI( "Các nghiệp vụ cần thực hiện: %0A"+ taskslist),keyBoard);
    }    
  }
}

【问题讨论】:

    标签: google-apps-script telegram-bot


    【解决方案1】:

    根据您在脚本中创建的键盘,回调数据似乎是“预算”。 (是吗?)

    但你似乎在检查

    if (data == 'edit') {
    

    根据docscallback_query.data是“与回调按钮关联的数据”。

    【讨论】:

    • 是我的错,我复制了旧版本,回调数据='edit'。但它仍然没有显示任何结果。我编辑了我的问题。
    【解决方案2】:

    在我看来,您的代码失败是因为您的函数顶部有 3 个变量(id、text、user)。应该将它们移至您处理消息的部分。

    当您发送回调时,顶部的那些变量会丢弃您的代码。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-04-10
      • 2016-07-15
      • 1970-01-01
      • 1970-01-01
      • 2020-09-15
      • 1970-01-01
      • 2016-10-01
      • 1970-01-01
      相关资源
      最近更新 更多