#javascript #bots #telegram
#javascript #боты #telegram
Вопрос:
Я хочу создать кнопку в моем боте Telegram с помощью 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'
'amp;chat_id=' chid
'amp;text=' toxt
'amp;reply_markup=' tasti;
var respose = UrlFetchApp.fetch(url);
}
Это моя ошибка:
Request failed for https://api.telegram.org/bot745193421:<token>/sendMessage?parse_mode=Markdownamp;chat_id=690534265amp;text=afsamp;reply_markup=[object Object] 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
Ответ №1:
Поскольку opts
это объект, когда вы пытаетесь объединить, он будет использовать toString()
метод, который просто вернет [object Object]
то, что вы можете видеть в запросе.
Чтобы решить эту проблему, сериализуйте свой объект с помощью JSON.stringify
в вашей MainKeyboard
функции.
function MainKeyBoard(tasti, toxt, chid) {
var url = link '/sendMessage?parse_mode=Markdownamp;chat_id=' chid
'amp;text=' toxt 'amp;reply_markup=' JSON.stringify(tasti);
var response = UrlFetchApp.fetch(url);
}