Рейтинг топика
  1. 5
  2. 4
  3. 3
  4. 2
  5. 1
(7 голосов, в среднем: 4.6 из 5)
Домой Беседка Программирование Отправка сообщения в Телеграмм
7 ответ(ов) в теме
не в сети давно
На сайте с
Участник
Тем 3
Сообщения 127
1
08:46

Создание бота
Итак, первое, что нужно сделать, это завести бота. Для этого в списке контактов найдите @BotFather. Это специальный бот от телеграмма, он нужен для заведения ботов.

Найдите @BotFather, и отправьте ему три команды: /newBot , и два раза укажите имя нового бота. Важно, имя бота должно заканчиваться на “bot” – таковы требования.
После этого BotFather ответит вам, что всё ОК, и вернет ключ для API, который потребуется в дальнейшем.

Теперь, в списке контактов найдите созданного вами бота по имени, и нажмите кнопку start.

После этого откройте в браузере вот такую ссылку

https://api.telegram.org/botКЛЮЧ-API/getUpdates

Вы должны увидеть последнюю активность бота. Если там пусто, напишите в телеграме боту какую-нибудь чушь и обновите страницу. Ваша итоговая цель – найти chat_id.

На этом шаге вы знаете API ключ и chat_id.

Ниже код (собирает все файлы Json от кранов с ключом "balance"во всех папках Bot-a).
Условие: Для работы, необходимо включить код в проект (вопрос к админу и программисту проекта).

Спойлер
function message_Bot (path, api, id) { Components.utils.import("resource://gre/modules/FileUtils.jsm"); let folder = new FileUtils.File(path), entries = folder.directoryEntries, X = Components.Constructor("@mozilla.org/xmlextras/xmlhttprequest;1"), list = [], info = {}, message = ''; while (entries.hasMoreElements()) { let entry = entries.getNext(); entry.QueryInterface(Components.interfaces.nsIFile); if (entry.isDirectory() && entry.leafName!='_common') { list.push( entry.path ); } } list.forEach (function(item, i, arr) { let folder = new FileUtils.File(item + '\\StateData'), entries = folder.directoryEntries; while (entries.hasMoreElements()) { let entry = entries.getNext(); entry.QueryInterface(Components.interfaces.nsIFile); if (entry.isFile() && entry.leafName!='__global_state.json') { let name_facet = entry.leafName, info = JSON.parse(imns.FIO.readTextFile(imns.FIO.openNode(entry.path))); for (let key in info) { if (key =='balance' || key =='account_balance' ) { message+=name_facet.replace('.json','')+"%0A"+key+" : "+info[key]+"%0A------------------%0A" } } } } }); let x=new X(); x.open('GET', 'https://api.telegram.org/bot' + api + '/sendMessage?chat_id=' + id +' &text='+message, false); x.send(); } message_Bot ('C:\\FF', ВАШ API-KEY, ВАШ chat_id);

Редакции сообщения
04.06.2019 08:52kdw22Причина: не указано
3
не в сети давно
На сайте с
Участник
Тем 3
Сообщения 127
2
08:58

PS: При блокировке со стороны Роскомнадзора, сообщения отправлять с прокси или vpn.

2,5
kogarashisan1
не в сети 1 час
На сайте с 07.03.2019
Модератор
18
Тем 1
Сообщения 90
3
13:22

Для решения каждой задачи - есть свои правильные инструменты и способ решения. В частности, уже работает параметр "raw=1" для контроллера:

var https = require("https"),
	fs = require("fs");

var SETTINGS = null;
eval(fs.readFileSync("C:/FF/config.js", "utf8"));
if (!SETTINGS)
	throw new Error("Нет настроек.");

https.get({
	host: "192.168.1.149",
	port: SETTINGS.remote_port,
	path: '/manage/get-state-data?bot_name=RU10&raw=1',
	method: 'GET',
	headers: {
		"x-ak": SETTINGS.access_key
	},
	rejectUnauthorized: false,
	requestCert: true
}, function (res) {

	res.resume();
	res.setEncoding('utf8');
	var rawData = '';
	res.on('data', function(chunk) { rawData += chunk; });
	res.on('end', function() {
		var json = JSON.parse(rawData);
		console.log(json);
	});

}).on('error', function (e) {

	console.log("error")

});

Итого - телеграм не нужен. Скорее было бы логично написать страничку на nw, или даже консольный скрипт, который в конце запустит блокнот.

У меня есть планы по "общей" админке на NW - она подключается ко всем контроллерам на VPS, и управляет конфигами.

8
не в сети давно
На сайте с
Участник
Тем 3
Сообщения 127
4
18:13

Только сейчас увидел инфу про Админку.
Ну да.... полностью согласен, телеграмм не нужен.

2
tema1301
не в сети 9 месяцев
На сайте с 10.08.2019
Ботовод
Сообщения 18
5
00:39

согласна телеграм ни кчему

5
fermer
не в сети 3 часа
На сайте с 11.07.2019
Ботовод
Тем 33
Сообщения 1020
6
06:11

kogarashisan1 сказал(а)
Для решения каждой задачи - есть свои правильные инструменты и способ решения. В частности, уже работает параметр "raw=1" для контроллера:

var https = require("https"),
	fs = require("fs");

var SETTINGS = null;
eval(fs.readFileSync("C:/FF/config.js", "utf8"));
if (!SETTINGS)
	throw new Error("Нет настроек.");

https.get({
	host: "192.168.1.149",
	port: SETTINGS.remote_port,
	path: '/manage/get-state-data?bot_name=RU10&raw=1',
	method: 'GET',
	headers: {
		"x-ak": SETTINGS.access_key
	},
	rejectUnauthorized: false,
	requestCert: true
}, function (res) {

	res.resume();
	res.setEncoding('utf8');
	var rawData = '';
	res.on('data', function(chunk) { rawData += chunk; });
	res.on('end', function() {
		var json = JSON.parse(rawData);
		console.log(json);
	});

}).on('error', function (e) {

	console.log("error")

});

Итого - телеграм не нужен. Скорее было бы логично написать страничку на nw, или даже консольный скрипт, который в конце запустит блокнот.

У меня есть планы по "общей" админке на NW - она подключается ко всем контроллерам на VPS, и управляет конфигами.

Очень интересно, но так и не понял: О чем эта Тема? Что хотелось от Телеги?

4
Weblom
не в сети 4 недели
На сайте с 08.04.2019
Ботовод
Тем 1
Сообщения 13
7
15:11

сказал(а)
Создание бота
Итак, первое, что нужно сделать, это завести бота. Для этого в списке контактов найдите @BotFather. Это специальный бот от телеграмма, он нужен для заведения ботов.

Найдите @BotFather, и отправьте ему три команды: /newBot , и два раза укажите имя нового бота. Важно, имя бота должно заканчиваться на “bot” – таковы требования.
После этого BotFather ответит вам, что всё ОК, и вернет ключ для API, который потребуется в дальнейшем.

Теперь, в списке контактов найдите созданного вами бота по имени, и нажмите кнопку start.

После этого откройте в браузере вот такую ссылку

https://api.telegram.org/botКЛЮЧ-API/getUpdates

Вы должны увидеть последнюю активность бота. Если там пусто, напишите в телеграме боту какую-нибудь чушь и обновите страницу. Ваша итоговая цель – найти chat_id.

На этом шаге вы знаете API ключ и chat_id.

Ниже код (собирает все файлы Json от кранов с ключом "balance"во всех папках Bot-a).
Условие: Для работы, необходимо включить код в проект (вопрос к админу и программисту проекта).

Спойлер
function message_Bot (path, api, id) { Components.utils.import("resource://gre/modules/FileUtils.jsm"); let folder = new FileUtils.File(path), entries = folder.directoryEntries, X = Components.Constructor("@mozilla.org/xmlextras/xmlhttprequest;1"), list = [], info = {}, message = ''; while (entries.hasMoreElements()) { let entry = entries.getNext(); entry.QueryInterface(Components.interfaces.nsIFile); if (entry.isDirectory() && entry.leafName!='_common') { list.push( entry.path ); } } list.forEach (function(item, i, arr) { let folder = new FileUtils.File(item + '\StateData'), entries = folder.directoryEntries; while (entries.hasMoreElements()) { let entry = entries.getNext(); entry.QueryInterface(Components.interfaces.nsIFile); if (entry.isFile() && entry.leafName!='__global_state.json') { let name_facet = entry.leafName, info = JSON.parse(imns.FIO.readTextFile(imns.FIO.openNode(entry.path))); for (let key in info) { if (key =='balance' || key =='account_balance' ) { message+=name_facet.replace('.json','')+"%0A"+key+" : "+info[key]+"%0A------------------%0A" } } } } }); let x=new X(); x.open('GET', 'https://api.telegram.org/bot' + api + '/sendMessage?chat_id=' + id +' &text='+message, false); x.send(); } message_Bot ('C:\FF', ВАШ API-KEY, ВАШ chat_id);

А как сделать, чтоб бот принимал сообщения в телеграм чате и отдавал их в обработку скрипту на iMacros?

1
Вы не имеете права на публикацию сообщений в этой теме
Новые сообщения на форуме ботоводов
Топ 15 пользователей за 7 дней
Место
Пользователь
Получено рейтинга
2
107.5
7
12.5
10
9.5
11
8.5
15
7
Поделиться с друзьями в соц. сетях: