【问题标题】:Bad Request: can't parse reply keyboard markup JSON object错误请求:无法解析回复键盘标记 JSON 对象
【发布时间】:2019-08-27 09:58:05
【问题描述】:

我想通过 javascript 在我的电报机器人中创建按钮,并且我在脚本 google 中工作。

但它没有获取。

我的代码:

function a() {
  const opts = {
    reply_to_message_id: '690534265',
    reply_markup: {
      resize_keyboard: true,
      one_time_keyboard: true,
      keyboard: [ ['test'], ['test1'] ]
    }
  };

  MainKeyBoard(opts, 'afs', '690534265');
}


function MainKeyBoard(tasti, toxt, chid) {
  var url = link + '/sendMessage?parse_mode=Markdown' +
    '&chat_id=' + chid +
    '&text=' + toxt +
    '&reply_markup=' + tasti;
  var respose = UrlFetchApp.fetch(url);
}

这是我的错误:

   Request failed for https://api.telegram.org/bot745193421:<token>/sendMessage?parse_mode=Markdown&chat_id=690534265&text=afs&reply_markup=[object%20Object] returned code 400. Truncated server response: {"ok":false,"error_code":400,"description":"Bad Request: can't parse reply keyboard markup JSON object"} (use muteHttpExceptions option to examine full response)

我尝试添加 JSON.parse 但错误:

SyntaxError: Unexpected token: o

【问题讨论】:

    标签: javascript bots telegram


    【解决方案1】:

    由于opts 是一个对象,当您尝试连接时,它将使用toString() 方法,该方法将返回您可以在请求中看到的[object Object]

    为了解决此问题,请在您的 MainKeyboard 函数中使用 JSON.stringify 序列化您的对象。

    function MainKeyBoard(tasti, toxt, chid) {
      var url = link + '/sendMessage?parse_mode=Markdown&chat_id=' + chid +
        '&text=' + toxt + '&reply_markup=' + JSON.stringify(tasti);
      var response = UrlFetchApp.fetch(url);
    }
    

    【讨论】:

      猜你喜欢
      • 2022-11-04
      • 2022-07-11
      • 1970-01-01
      • 2021-04-11
      • 1970-01-01
      • 1970-01-01
      • 2011-10-05
      • 2016-07-21
      • 1970-01-01
      相关资源
      最近更新 更多