1

我有这个代码:

const { Logger } = require ("telegram/extensions");
const { TelegramClient } = require ("telegram");
const { StringSession } = require ("telegram/sessions");
const { NewMessage } = require ("telegram/events");
const { NewMessageEvent } = require ("telegram/events/NewMessage");
const { Message } = require ("telegram/tl/custom/message");
const input = require('input'); // npm i input
const puppeteer = require('puppeteer-extra');


async function eventHandler(event, browser) {
    //get event.message, ....
    const page = await browser.newPage();

}


const client = new TelegramClient(
  new StringSession(stringSession),
  apiId,
  apiHash,
  { connectionRetries: 5 }
);


(async () => {
  console.log('Loading interactive example...')
  const browser = await puppeteer.launch({args: ['--no-sandbox', '--disable-setuid-sandbox', '--disable-dev-shm-usage', '--shm-size=2gb', '--start-maximized', '--disable-features=IsolateOrigins,site-per-process', '--disable-web-security'], headless: true});
  await client.start({
      phoneNumber: "+33...",
      password: async () => await input.text('password?'),
      phoneCode: async () => await input.text('Code ?'),
      onError: (err) => console.log(err),
  });
  console.log('Telegram bot connected');
  console.log(client.session.save());
  client.addEventHandler(eventHandler, new NewMessage({}), browser);

})();

我想将浏览器变量传递给eventHandler函数。我尝试这样,但它不起作用,浏览器在eventHandler.

如何将浏览器变量传递给我的eventHandler

4

1 回答 1

2

不确定签名是什么,client.addEventHandler但假设它需要一个 param event,您可以尝试用以下内容替换最后一行:

client.addEventHandler(
  (event) => eventHandler(event, browser),
  new NewMessage({}),
);
于 2021-06-11T13:44:13.363 回答