向电报机器人发送消息

问题描述 投票:0回答:2

我需要一些帮助,

正在尝试向电报机器人发送消息

但事情对我来说并不顺利,

我只是想归档我想做的事情。我是 jquery 和 javascript 的新手

以下是我尝试过的

<!DOCTYPE html>
<html lang="en">

<head>
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
</head>
    
<script>
  $(document).ready(function () {
    $("#add_button").click(function(event) {
       Execute();
    });
    
    var fname = document.querySelector('input[name="fname"]').value;
    var country = document.querySelector('input[name="country"]').value;
    
    Message: "<html><br>| Fullname: ${fname} <br> | Country: ${country} <br></html>";

    function Execute(){
      $.ajax({
        type: 'POST',
        url: 'https://api.telegram.org/bot<token>/sendMessage?chat_id=<id>text=<message>&parse_mode=html',
        data: Message,
         
         success: function(res) {
        $('#response').text('Message sent');
  },
        error: function() {
          alert("error failed");
        }
      });
    };

  });
</script>

<input type="text" id="fname" name="fname" placeholder="fullname">
<input type="text" id="country" name="country" placeholder="country">
  <input type="button" id="add_button" value="Submit">
  <div id="response"></div>
<body>
    
</body>
</html>
javascript jquery telegram-bot
2个回答
0
投票

您的脚本中有几个问题:

  • 您的
    <body>
    标签放错位置了
  • 据我所知,您的有效负载必须采用表单编码(而不是 GET 参数)
  • 使用
    `
    作为格式字符串,而不是
    "
  • 在执行方法中读取输入值,而不是在外部(否则你只在页面加载时读取一次)。
  • 您不能在消息中使用
    <br>
    <html>
    ,请参阅 docs
<!DOCTYPE html>
<html lang="en">

<head>
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
</head>

<body>

<input type="text" id="fname" name="fname" placeholder="fullname">
<input type="text" id="country" name="country" placeholder="country">
<input type="button" id="add_button" value="Submit">
<div id="response"></div>

<script>
    const token = '<token>';
    const chatId = '<chat_id>';

    $(document).ready(function () {
        $("#add_button").on('click', function (event) {
            execute();
        });

        function execute() {
            const fname = document.querySelector('#fname').value;
            const country = document.querySelector('#country').value;
            const message = `Fullname: ${fname}\nCountry: ${country}`;

            $.ajax({
                type: 'POST',
                url: `https://api.telegram.org/bot${token}/sendMessage`,
                data: {
                    chat_id: chatId,
                    text: message,
                    parse_mode: 'html',
                },
                success: function (res) {
                    console.debug(res);
                    $('#response').text('Message sent');
                },
                error: function (error) {
                    console.error(error);
                    alert("error failed");
                }
            });
        }
    });
</script>
</body>
</html>

还有安全说明:

请勿在任何制作中使用此脚本!从来没有!
每个人都可以读取和滥用您的机器人令牌。 为此使用后端。


0
投票

实际上你可以在任何生产中使用它,但完成脚本后,复制不带脚本标签()的代码并将其粘贴到obfuscator.io上,然后复制混淆的代码并将其粘贴到脚本()标签内,它将正常工作。伊兹

© www.soinside.com 2019 - 2024. All rights reserved.