我想通过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
答案 0 :(得分:0)
由于opts
是一个对象,当您尝试进行连接时,它将使用toString()
方法,该方法只会返回在请求中可以看到的[object Object]
。
为了解决此问题,请在JSON.stringify
函数中使用MainKeyboard
对对象进行序列化。
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);
}