Soo... 我正在为 Node.JS 开发 Telegram Bot,在用户加入后,我的 bot 将欢迎他们:
function Welcome(e)
{
console.log("Neuer Member");
console.log(e); //Das ist der, der joint
let markup = Extra.markup(
Markup.inlineKeyboard([
Markup.callbackButton('I read the rules and accept them!', 'AcceptRules'),
Markup.urlButton('Read the rules here', 'https://t.me/MyBot')
])
);
bot.telegram.restrictChatMember(e.chat.id, e.from.id, {can_send_messages: false, can_send_media_messages: false, can_send_other_messages: false});
e.reply(`Welcome to the chat @${e.message.from.username}, please make sure to read the rules https://t.me/MyBot\n\nYou will be able to chat in here once you read them :3\n\n If you have trouble you can use this button right here to accept AFTER you read them ;3`, markup, Extra.inReplyTo(e.update.message.message_id))
}
用户加入聊天后,可以点击消息附加的左侧按钮,到Callback.Button,触发这个功能:
bot.action('AcceptRules', e => {
//if(e.update.callback_query.from.username == )
let markup = Extra.markup(
Markup.inlineKeyboard([
Markup.urlButton('Read the rules here', 'https://t.me/VenWaifuBot')
])
);
//Das ist der, der akzeptiert
allow(e);
e.editMessageText(`✅Thank you ${e.update.callback_query.from.first_name} for reading the rules! I hope you have fun here ;3\n\nYou can always read the rules here, they will be updates from time to time`, markup);
console.warn(e);
});
所以我的问题是......我怎么能确定只有加入的人 --> 用户在加入时触发 Welcome(e) 功能 --> 用户名在本地 e 变量中
e.update.message.from.username 来自加入的用户
e.update.callback_query.from.username 是点击按钮的用户
但两者都是局部变量......
如何将该变量从欢迎消息传递给 bot.action 事件?
我想制作一个临时的全局内存来存储用户名,但是如果另一个用户加入并干扰了怎么办……制作一个数组似乎也有点不对劲……有人有解决方案吗?
真诚的文