Как правильно сделать приветственное сообщение в чате, когда новый пользователь присоединяется к группе?(Node.js, телеграмма) - PullRequest
0 голосов
/ 05 апреля 2019

Я пытаюсь улучшить своего бота, чтобы приветствовать каждого пользователя, который присоединится к группе. Однако я не могу найти рабочий способ сделать это. Команды работают отлично, но насчет приветственного сообщения, я застрял и не могу найти никакого решения, где бы эта проблема ...

Я попытался найти другой код бота, который имеет эту функцию, к сожалению, все, что я нашел, было написанным ботом на языке 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.»

...