· 5 years ago · Mar 13, 2020, 11:08 AM
1public async twitterListener(req: Request, res: Response): Promise<Response> {
2 try {
3 const webhook = new Autohook({
4 token: process.env.TWITTER_ACCESS_TOKEN,
5 token_secret: process.env.TWITTER_SECRET,
6 consumer_key: process.env.TWITTER_APIKEY,
7 consumer_secret: process.env.TWITTER_SECRET_KEY,
8 env: process.env.TWITTER_WEBHOOK_ENV
9 })
10
11 const io = req.app.get('socketio')
12
13 await webhook.removeWebhooks()
14
15 webhook.on('event', async (event: any) => {
16 console.log(event)
17 io.sockets.on('connection', (socket: any) => socket.emit('message', event))
18 })
19
20 await webhook.start()
21 await webhook.subscribe({
22 oauth_token: req.headers.accesstoken,
23 oauth_token_secret: req.headers.secret
24 })
25 } catch(e) {
26 console.log(e)
27 return super.sendErrorMessage(res, e)
28 }
29 }