Как настроить веб-перехватчик viberbot для бота nodejs, развернутого heroku?

У меня проблема с настройкой веб-крючка для моего чат-бота, который я сделал с помощью nodejs. Который развернут на Heroku.

Приложение использует следующую архитектуру:

const http = require('http');
const port = process.env.PORT || 8080;
 
// Viber will push messages sent to this URL. Web server should be internet-facing.
const webhookUrl = process.env.WEBHOOK_URL; 

// I have used this as Heroku app name with https://dyno-125-92.herokuapp.com

http.createServer(ot.middleware()).listen(port, () => bot.setWebhook(webhookUrl));

Пожалуйста, помогите мне настроить веб-перехватчик, используя экспресс или что-нибудь, что может работать с моим ботом?
Я застрял.

1 ответ

Попробуй это:

const express = require('express');
const app = express();

// contains relative URL path, like: "/viber/webhook"
const webhookUrl = process.env.WEBHOOK_URL;

// ...

app.use(webhookUrl, bot.middleware());
app.listen(port, () => {
  console.log(`Application running on port: ${port}`);
  bot.setWebhook(`${process.env.EXPOSE_URL}${webhookUrl}`).catch(error => {
    console.log('Can not set webhook on following server. Is it running?');
    console.error(error);
    process.exit(1);
  });
});

Если не работает, используйте - полный пример кода для проверки.

Другие вопросы по тегам