forked from howdyai/botkit
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathconvo_bot.js
97 lines (67 loc) · 2.33 KB
/
convo_bot.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
______ ______ ______ __ __ __ ______
/\ == \ /\ __ \ /\__ _\ /\ \/ / /\ \ /\__ _\
\ \ __< \ \ \/\ \ \/_/\ \/ \ \ _"-. \ \ \ \/_/\ \/
\ \_____\ \ \_____\ \ \_\ \ \_\ \_\ \ \_\ \ \_\
\/_____/ \/_____/ \/_/ \/_/\/_/ \/_/ \/_/
This is a sample Slack bot built with Botkit.
This bot demonstrates a multi-stage conversation
# RUN THE BOT:
Get a Bot token from Slack:
-> http://my.slack.com/services/new/bot
Run your bot from the command line:
token=<MY TOKEN> node demo_bot.js
# USE THE BOT:
Find your bot inside Slack
Say: "pizzatime"
The bot will reply "What flavor of pizza do you want?"
Say what flavor you want.
The bot will reply "Awesome" "What size do you want?"
Say what size you want.
The bot will reply "Ok." "So where do you want it delivered?"
Say where you want it delivered.
The bot will reply "Ok! Goodbye."
...and will refrain from billing your card because this is just a demo :P
# EXTEND THE BOT:
Botkit has many features for building cool and useful bots!
Read all about it here:
-> http://howdy.ai/botkit
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
var Botkit = require('../lib/Botkit.js');
if (!process.env.token) {
console.log('Error: Specify token in environment');
process.exit(1);
}
var controller = Botkit.slackbot({
debug: false
});
controller.spawn({
token: process.env.token
}).startRTM(function(err) {
if (err) {
throw new Error(err);
}
});
controller.hears(['pizzatime'],['ambient'],function(bot,message) {
bot.startConversation(message, askFlavor);
});
askFlavor = function(response, convo) {
convo.ask("What flavor of pizza do you want?", function(response, convo) {
convo.say("Awesome.");
askSize(response, convo);
convo.next();
});
}
askSize = function(response, convo) {
convo.ask("What size do you want?", function(response, convo) {
convo.say("Ok.")
askWhereDeliver(response, convo);
convo.next();
});
}
askWhereDeliver = function(response, convo) {
convo.ask("So where do you want it delivered?", function(response, convo) {
convo.say("Ok! Goodbye.");
convo.next();
});
}