chatty-bot v1.0.1
chatty-bot
Little framework to test and build Facebook Messenger Chatbots on Node
You can run your app from the command line
Before deploying
Getting Started
Create a node project
npm init
Install chatty-bot globally (so it can run from the command line)
npm install -g chatty-bot
Then add it to your current project
npm install -save chatty-bot
Create a file called
app.js
This is where your chat code goes. And copy this into it.var app = {}; app.request = function(text, senderId, sendText, sendTemplateData){ if(text.toLowerCase().indexOf('help') > -1){ sendText('I can help you. Ask me a question.'); } else if (text.toLowerCase().indexOf('?') > -1){ sendTemplateData(createMsg()); } else { sendText('Hello there '); } }; app.postback = function(payload, senderId, sendText, sendTemplateData){ if(payload === 'robot'){ sendText('Hello comrade'); } if(payload === 'human'){ sendText('Human beings are a disease, a cancer on this planet, you are a plague, and we...are the cure.'); } } function createMsg(){ var messageData = { "attachment": { "type": "template", "payload": { "template_type": "generic", "elements": [{ "title": "Before we start", "subtitle": "Are you a robot or a human?", "image_url": "http://i.imgur.com/JD3ydzu.jpg", "buttons": [{ "type": "postback", "title": "Robot", "payload": "robot", },{ "type": "postback", "title": "Human", "payload": "human", }], }] } } } return messageData; } module.exports = app;
The
app
is passed to the chatty-app cli and server, you just need to write implementations forapp.request
andapp.postback
.Two functions:
sendText
andsendTemplateData
are passed to the app. Call these to either send text or a structured message.sendText('Hello there ');
On the command line type:
chattybot
And start chatting on the command line.
To select a structured template message type ~ followed by the title, followed by the button title. e.g.
~Before we start Human
To hook up your app to messenger, create a file called
index.js
And copy the code below into it.var chattybot = require('chatty-bot') var app = require('./app') chattybot.listen(app, process.env.PORT || 5000, <YOUR PAGE ACCESS TOKEN>, <YOUR VERFIY TOKEN>);
Then deploy.
Help
Get the tokens from Facebook.
An excellent beginner's tutorial.
This is a new project so pull requests and issues welcome.
TODO
Add welcome message for a new thread
Pass sequence number to app