Получение данных с Telegram getUpdates на javascript с помощью XMLHttpRequest
На странице сайта есть чат, который отправляет сообщения в заранее указанный chat_id от имени бота. С отправкой сообщений никаких проблем нет, а вот как получить данные о новых входящих я никак не могу понять.
На данный момент у меня есть код, который получает последнее сообщение в общем массиве данных, хранящихся в https://api.telegram.org/bot{TOKEN}/getUpdates?offset=-1, но проблема в том, что мне нужно получать данные только при появлении нового сообщения. Как я могу периодически "ловить", то есть отслеживать новые данные при их появлении? И как распарсить ответ сервера, чтобы получить только содержимое сообщения?
var HttpClient = function() {
this.get = function(aUrl, aCallback) {
var anHttpRequest = new XMLHttpRequest();
anHttpRequest.onreadystatechange = function() {
if (anHttpRequest.readyState == 4 && anHttpRequest.status == 200)
aCallback(anHttpRequest.responseText);
}
anHttpRequest.open( "GET", aUrl, true );
anHttpRequest.send( null );
}
}
function GetAsync() {
var client = new HttpClient();
client.get('https://api.telegram.org/bot{TOKEN}/getUpdates?offset=-1', function(response) {
alert(response)
});
}
При вызове функции я получаю alert с таким содержанием:
{"ok":true,"result":[{"update_id":69sdf38324, "message":{"message_id":36,"from":{"id":34sfa5747,"is_bot":false,"first_name":"ghj","last_name":"ghj","username":"ghjghj","language_code":"ru"},"chat":{"id":341735747,"first_name":"ghjjs","last_name":"ghjghj","username":"ghjghj","type":"private"},"date":1648326116,"text":"asdasdas"}}]}