I want to create a Telegram Bot with Node.js and I am using Telegraf for it. I know I can answer to messages like this:
app.hears('hi', (ctx) => ctx.reply('Hey there!'))
But how can I send a message without getting a message before? I want to read a file and always when the file got changed I want to send a message.
const Telegraf = require('telegraf');
var fs = require('fs');
const app = new Telegraf(process.env.BOT_TOKEN);
var filePath = "C:\\path\\to\\my\\file.txt";
fs.watchFile(filePath, function() {
file = fs.readFileSync(filePath);
// Send message to chat or group with the file content here
console.log("File content at: " + new Date() + " is: \n" + file);
})
Would be nice if someone can help me with it.
You can use app.telegram.sendMessage
for that, see following snippet.
const Telegraf = require('telegraf');
var fs = require('fs');
const app = new Telegraf(process.env.BOT_TOKEN);
var filePath = "C:\\path\\to\\my\\file.txt";
fs.watchFile(filePath, function() {
file = fs.readFileSync(filePath);
app.telegram.sendMessage("File content at: " + new Date() + " is: \n" + file);
})