Guest User

Untitled

a guest
Feb 25th, 2018
80
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.96 KB | None | 0 0
  1. require('dotenv').config();
  2.  
  3. const {
  4. FB_ACCESS_TOKEN,
  5. FB_VERIFY_TOKEN,
  6. APP_ID,
  7. APP_SECRET,
  8. } = process.env;
  9.  
  10. const { bots } = require('./global-session');
  11.  
  12. const profile = {
  13. get_started: {
  14. payload: '/start',
  15. },
  16. persistent_menu: [
  17. {
  18. locale: 'default',
  19. composer_input_disabled: false,
  20. call_to_actions: [
  21. {
  22. type: 'postback',
  23. title: 'Menu',
  24. payload: '/menu',
  25. },
  26. ],
  27. },
  28. ],
  29. };
  30. /* istanbul ignore next */
  31. module.exports = {
  32. messenger: {
  33. bot: {
  34. accessToken: FB_ACCESS_TOKEN,
  35. appId: APP_ID,
  36. appSecret: APP_SECRET,
  37. mapPageToAccessToken: bots.getTokenByPageById,
  38. profile,
  39. },
  40. server: {
  41. verifyToken: FB_VERIFY_TOKEN,
  42. path: '/messenger',
  43. profile,
  44. },
  45. },
  46. };
  47.  
  48. const { MessengerBot } = require('bottender');
  49. const express = require('express');
  50. const bodyParser = require('body-parser');
  51. const { registerRoutes } = require('bottender/express');
  52. const handler = require('./handlers');
  53. const logger = require('./utils/logger');
  54.  
  55. const { APP_PORT, NODE_ENV } = process.env;
  56. const server = express();
  57.  
  58. /* istanbul ignore next */
  59. const verify = (req, res, buf) => {
  60. req.rawBody = buf.toString();
  61. };
  62.  
  63. server.use(bodyParser.json({ verify }));
  64. server.use(require('morgan')('short', { stream: logger.logStream }));
  65.  
  66. const { messenger } = require('./config');
  67.  
  68. const bots = {
  69. messenger: new MessengerBot(messenger.bot).onEvent(handler.messenger.execute),
  70. // Define other platform bots here!
  71. };
  72.  
  73. const initialize = async () => {
  74. try {
  75. registerRoutes(server, bots.messenger, messenger.server);
  76. // Start server
  77. server.listen(APP_PORT, () => logger.info(`ENV[${NODE_ENV}] - server is listening on port ${APP_PORT}...`));
  78. } catch (e) {
  79. logger.error('unable to start server!');
  80. logger.error(e);
  81. throw Error();
  82. }
  83. };
  84.  
  85. /* istanbul ignore next */
  86. if (process.env.NODE_ENV !== 'test') {
  87. initialize();
  88. }
  89.  
  90. module.exports = initialize;
Add Comment
Please, Sign In to add comment