Задать вопрос
@grandmilky

Как переслать уведомление windows/chrome в телеграм?

Расширение Distill Web Monitor присылает уведомления. Как текст этих уведомлений автоматически пересылать в телеграм?6345cf789a717523154081.png
  • Вопрос задан
  • 481 просмотр
Подписаться 2 Простой 1 комментарий
Решения вопроса 1
zkrvndm
@zkrvndm
Архитектор решений
Нужно в консоли открыть контекст расширения и отредактировать метод отсылающий уведомления.

Потребуется знание JavaScript. Пример функции для отправки уведомлений из браузера в Телеграм:
async function sendTelegram(send_text) {
	
	var chat_id = '-*****************'; // Номер группы Телеграм
	
	// Токен, бот должен состоять в группе, куда шлем уведомления:
	var bot_token = '*******************************************';
	
	var url_obj = new URL('https://api.telegram.org/bot'+bot_token+'/sendMessage');
	url_obj.searchParams.set('time', new Date().getTime());
	
	var max_send_count = 3; var send_status = false;
	
	do {
		
		max_send_count--;
		
		try {
			
			var response = await (await fetch(url_obj.href, {
				'method': 'POST',
				'headers': {
					'Content-Type': 'application/json; charset=UTF-8'
				},
				'body': JSON.stringify({
					'chat_id': chat_id,
					'text': send_text,
					'parse_mode': 'HTML'
				})
			})).json();
			
			if (response.ok) {
				
				send_status = true;
				
				console.log('Уведомление успешно отправлено в группу Телеграм:');
				console.dir(response);
				
			}
			
			else {
				
				console.log('Произошла ошибка при отправке уведомления в группу Телеграм:');
				console.dir(response);
				
				await new Promise(function(s) { setTimeout(s, 1000); });
				
			}
			
		}
		
		catch (err) {
			
			console.log('Произошла ошибка при отправке уведомления в группу Телеграм:');
			console.error(err);
			
			await new Promise(function(s) { setTimeout(s, 1000); });
			
		}
		
	} while (!send_status && max_send_count > 0);
	
	if (!send_status) {
		
		alert('Не удалось отправить уведомление в Телеграм, детали см. в консоли.');
		
	}
	
	return send_status;
	
}
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы