Я пытаюсь улучшить своего бота, чтобы приветствовать каждого пользователя, который присоединится к группе.
Однако я не могу найти рабочий способ сделать это. Команды работают отлично, но насчет приветственного сообщения, я застрял и не могу найти никакого решения, где бы эта проблема ...
Я попытался найти другой код бота, который имеет эту функцию, к сожалению, все, что я нашел, было написанным ботом на языке Python ...
Вот код ниже ...
'use strict';
const Telegram = require('telegram-node-bot'),
tg = new Telegram.Telegram('MYAPIKEY', {
workers: 1
});
//Commands for bot, codes of the commands are in the controllers
const InfoController = require('./controllers/info')
, RulesController = require('./controllers/rules')
, PriceController = require('./controllers/price')
tg.router.when(new Telegram.TelegramTextCommand('/info', 'infoCommannd'), new InfoController())
tg.router.when(new Telegram.TelegramTextCommand('/rules', 'rulesCommannd'), new RulesController())
tg.router.when(new Telegram.TelegramTextCommand('/price', 'priceCommannd'), new PriceController());
//Welcome Message in the chatgroup to new user that joins group
function telegram_user() {
this.telegram_id = 0;
this.telegram_username = null;
this.telegram_firstname = null;
this.telegram_lastname = null;
this.some_array = [];
this.some_other_array = []; //yes you can store arrays in objects
this.store_some_message = null;
}
//initialise global user array
var user_array = [];
user_array.push(new telegram_user()); //i just like to fill the [0] with a blank user
function auth_usr(telegram_id) {
for(var i = 0; i < user_array.length; i++)
{
if (user_array[i].telegram_id === telegram_id) {
return i; //return the user's position in the user_array
}
}
return 0; //otherwise just return 0;
}
//instantiate new user state object
if(auth_usr(message.from.id) === 0)
{
user_array.push(new telegram_user());
user_array[user_array.length-1].telegram_id = message.from.id;
user_array[user_array.length-1].telegram_username = message.from.username;
user_array[user_array.length-1].telegram_firstname = message.from.first_name;
user_array[user_array.length-1].telegram_lastname = message.from.last_name;
telegram.sendMessage(message.chat.id, "Welcome" + telegram_firstname + "! Do not forget to read rules with /rules command" , {parse_mode: "Markdown"}); //When user joins it will Say "Welcome "first name" "! Do not forget...!"
return;
}
Проблема с кодом, и я не могу ее исправить.
Ошибка при компиляции index.js
if(auth_usr(message.from.id) === 0)
^
ReferenceError: message is not defined
Мой ожидаемый результат - когда новый пользователь присоединится к группе, появится это сообщение:
«Добро пожаловать, Боб! Не забудьте прочитать правила с помощью команды / rules.»