javascript - 使用谷歌应用程序脚本无法使用电报机器人键盘标记
问题描述
我有这段代码,但是在使用我制作的功能键盘时显示消息和键盘不起作用。
function sendText(id,text) {
var url = telegramUrl + "/sendMessage?chat_id=" + id + "&text=" + text;
var response = UrlFetchApp.fetch(url);
Logger.log(response.getContentText());
}
function Keyboard (id, text, reply_markup ){
var url = telegramUrl + "/sendMessage?chat_id=" + id + "&text=" + text + "&reply_markup=" + reply_markup ;
var response = UrlFetchApp.fetch(url);
Logger.log(response.getContentText());
}
function doPost(e) {
// this is where telegram works
var data = JSON.parse(e.postData.contents);
var text = data.message.text;
var id = data.message.chat.id;
if (text == "/start"){
var message = "Selamat datang. Untuk mencari data pelanggan silahkan memasukkan @ODP_NAME.%0AContoh : @ODP-UBN-FAC/100";
var opts = JSON.stringify({
keyboard: [['OK','Cancel']],
one_time_keyboard: true,
resize_keyboard: true
})
;
//sendText(id, "hola", opts);
Keyboard(id,"hi", opts);
}
}
**然后我尝试像这样使用函数 sendText() 使 url 为真,但它只给我文本而不显示键盘。**
sendText(id,"hi", {reply_markup: JSON.stringify({
keyboard: [['OK','Cancel']],
one_time_keyboard: true,
resize_keyboard: true
})
});
你能告诉我我的代码有什么问题吗?
解决方案
而不是使用获取尝试使用帖子示例:
var keyBoard =JSON.stringify({
"keyboard": [["OK","Cancel"]],
"one_time_keyboard":true,
"resize_keyboard":true
});
var url = "https://api.telegram.org/bot123456:ABC-DEF1234ghIkl-zyx57W2v1u123ew11";
function replyKeyboard(){
var formData = {
'chat_id': "1234567",
'text': 'Hello',
'reply_markup': keyBoard
};
var options = {
'method' : 'post',
'payload' : formData
};
UrlFetchApp.fetch(url + "/sendMessage?", options);
}
推荐阅读
- python - 如何使用flask将多张照片直接返回到当前html页面
- c# - 无法以编程方式移动 SharePoint 文件,因为它包含空格并且字段是只读的
- vba - 如何在 VBA 中创建间隔 2 周的日期数组?
- app-store-connect - 更新发布到应用商店后,iOS 应用程序用户崩溃 [复杂案例]
- c++ - Madgwick 算法不稳定
- python - 优化 python 脚本以更快地产生输出(变量分配)
- java - 我正在尝试制作一个简单的 Discord Bot,但它不起作用
- angular - ng --version 显示
对于 Angular 版本号和一些包 - c# - 如何使用方法中的值填充 xUnit [Theory] 和 [InlineData]
- php - 在 PHP 类中调用静态方法时,是否有任何理由使用 self:: over static::