【问题标题】:Send JSON object using Google web app JavaScript to a Telegram bot使用 Google Web 应用 JavaScript 将 JSON 对象发送到 Telegram 机器人
【发布时间】:2020-04-06 12:14:48
【问题描述】:

0stone0:修复了问题;谢谢,谢谢+谢谢;

ADW:感谢您说明键盘对象,采纳;

基于 JavaScript 的 Google 网络应用程序将 JSON 对象发送到 Telegram 机器人;使用按钮实现基于 Telegram 的菜单,以便用户按下选定的按钮并执行相应的操作;

用户类型:菜单

电报组屏幕上显示按钮列表

解决方案如下:

function menu( chat_id ) {
    let url = vUrlTelegram + "/sendMessage";

    var keyboard = {
        'inline_keyboard' : 
        [
            [{'text' : 'admin',      'callback_data' : 'admin'}], // Row 1 
            [{'text' : 'squad',      'callback_data' : 'squad'}], // Row 2

            [{'text' : 'carioca',    'callback_data' : 'carioca'}], // Row 3
            [{'text' : 'brasileiro', 'callback_data' : 'brasileiro'}], // Row 4

            [{'text' : 'sponsors',   'callback_data' : 'sponsors'}], // Row 5       
            [{'text' : 'test',       'callback_data' : 'test'}] // Row 6       
        ]
    };  

    var data = {
        'chat_id': chat_id,
        'text': "main menu",
        'reply_markup': keyboard
    };   

    var options = {
        'method' : 'post',
        'contentType': 'application/json',
        'payload' : JSON.stringify(data)
    };
    var response = UrlFetchApp.fetch(url, options);  
    Logger.log(response);
}

【问题讨论】:

  • 我知道您的尝试,但我们无法仅通过查看此代码来重现您的问题。如果您可以记录其中一些值并告诉我们这些值是什么,而不是说“它们不起作用”,那么有人可能会发现一些东西。 :)
  • saglamcem;了解您的 cmets,0stone0 处于领先地位并最终解决了问题;我非常感谢您的 cmets 并非常感谢您的时间;再次感谢

标签: javascript json google-apps-script telegram-bot


【解决方案1】:

刚刚度过了一个忙碌的周末;)

设法使其在 Google App Script 中运行;

function myFunction() {
    let token = '123456788:AAdadadadbMTcMvY10SZGsbIJ2rdFXJiXmbFw';
    let url = "https://api.telegram.org/bot" + token + "/sendMessage";

    var options = {
        'method' : 'post',
        'contentType': 'application/json',
        'payload' : JSON.stringify({
            'chat_id': 11111111,
            'text': 'fsdfdsfsdf',
            'reply_markup': {
                inline_keyboard: [
                    [{ text: 'Some button text 1', callback_data: '1' }],
                    [{ text: 'Some button text 2', callback_data: '2' }],
                    [{ text: 'Some button text 3', callback_data: '3' }]
                ]
            }
        })
    };
    var response = UrlFetchApp.fetch(url, options);  
    var res = UrlFetchApp.fetch(url);
    Logger.log(res);
}

问题在于嵌套的有效负载/reply_markup 对象。

【讨论】:

  • 0stone0;你简直就是最好的作品!非常感谢,我会继续执行谢谢,谢谢,谢谢
【解决方案2】:

这假设您正在尝试使用 Google Apps 脚本向 Telegram 发送内联键盘。

我编写了这个可能有帮助的示例脚本:

function sample_inlineKeyboard() {
  var chat_id = '123456789';
  var text = 'Please pick a button:';
  var keyboard = {
    'inline_keyboard' : 
    [
      [{'text' : 'blue',   'callback_data' : 'blue'}, 
       {'text' : 'green',  'callback_data' : 'green'}, 
       {'text' : 'red',    'callback_data' : 'red'}], // Row 1
      [{'text' : 'yellow', 'callback_data' : 'yellow'},
       {'text' : 'brown',  'callback_data' : 'brown'}, 
       {'text' : 'black',  'callback_data' : 'black'}] // Row 2
    ]
  }
  var data = {
    'chat_id': chat_id,
    'text': text,
    'reply_markup': keyboard
  };        
  var options = {
    'method' : 'post',
    'contentType': 'application/json',
    'payload' : JSON.stringify(data)
  };
  var token = "0123456789:AABBCC....."; // Bot token
  var vUrlTelegram = 'https://api.telegram.org/bot' + token + '/sendMessage';
  var response = UrlFetchApp.fetch(vUrlTelegram, options);    
  Logger.log(response);
}

【讨论】:

  • ADW;感谢您的回答; 0stone0 排在首位,最终解决了您的答案类似于 0stone0 的问题;我喜欢你的键盘对象,我们会采用它;出色的工作,感谢您抽出宝贵的时间;干杯队友
猜你喜欢
  • 2022-01-10
  • 2017-05-01
  • 1970-01-01
  • 1970-01-01
  • 2012-12-01
  • 2011-03-13
  • 2018-10-25
  • 2017-09-01
  • 1970-01-01
相关资源
最近更新 更多