Доработать скрипт бота - чтобы он только один раз отвечал на последнее сообщение.
Сделать так, чтобы бот не повторял то что уже написано, и в то же время работал в реальном времени.
1234567891011121314151617181920212223242526272829303132333435363738394041424344
setInterval(function(){
let url = "https://api.telegram.org/bot/getUpdates";
//создание обьекта который умеет отправлять запросы
let xhr = new XMLHttpRequest();
// говорим обьекту как отправить запрос
xhr.open('GET', url , false);
//отправляем запрос
xhr.send();
//раскодируем данные которые получили в ответ
let data = JSON.parse(xhr.responseText);
//выводим результат на экран
console.log(data);
//находим последнее сообщение
let lastNumber = data.result.length - 1;// номер последнего сообщения
let last = data['result'][lastNumber];
//находим айди юзера и текст сообщения
let userId = last['message']['from']['id']
let text = last['message']['text']
//отправляем ответ
sendMessage(userId,text);
}, 3000);
function sendMessage(userId, text) {
let url = `https://api.telegram.org/bot/sendMessage?chat_id=${userId}&text=${text}`;
let xhr = new XMLHttpRequest();
xhr.open('GET',url,false);
xhr.send();
}
По дате
По рейтингу
1234567891011121314151617181920212223242526
let lastMessageId = 0;
setInterval(function() {
let url = "https://api.telegram.org/bot/getUpdates";
let xhr = new XMLHttpRequest();
xhr.open('GET', url , false);
xhr.send();
let data = JSON.parse(xhr.responseText);
let lastNumber = data.result.length - 1;
let last = data['result'][lastNumber];
let currentMessageId = last['message']['message_id'];
if (currentMessageId !== lastMessageId) {
lastMessageId = currentMessageId;
let userId = last['message']['from']['id']
let text = last['message']['text']
sendMessage(userId, text);
}
}, 3000);
function sendMessage(userId, text) {
let url = `https://api.telegram.org/bot/sendMessage?chat_id=${userId}&text=${text}`;
let xhr = new XMLHttpRequest();
xhr.open('GET',url,false);
xhr.send();
}
Больше по теме