vinsbot
Version:
facebook chatbot
107 lines (98 loc) • 3 kB
JavaScript
var request = require('request'),
config = require('./config/config');
class Bot {
constructor (page_token){
this.page_token = page_token
}
// get user profile
getUserProfile(userId) {
var url = config.get_profile(userId, this.page_token);
return new Promise((resolve, reject) => {
request(url, function (error, response, body) {
resolve(JSON.parse(body))
});
})
}
// Sends response messages via the Send API
sendMessage (sender_psid, response) {
// Construct the message body
let request_body = {
recipient: {
id: sender_psid
},
message: response
}
// Send the HTTP request to the Messenger Platform
request({
uri: config.uri,
qs: {
access_token: this.page_token
},
method: "POST",
json: request_body
}, (err, res, body) => {
if (!err) {
console.log('message sent!')
} else {
console.error("Unable to send message:" + err);
}
});
}
// Calls the Facebook graph api to change various bot settings
addMenu(menu){
// Start the request
request({
url: config.add_menu(this.page_token),
method: 'POST',
headers: {'Content-Type': 'application/json'},
form: menu
},
function (error, response, body) {
if (!error && response.statusCode == 200) {
console.log(body);
} else {
// TODO: Handle errors
console.log("cant add menu.");
console.log(body);
}
});
}
// get started
facebookWelcome(form){
request({
url: config.welcome(this.page_token),
method: 'POST',
headers: {'Content-Type': 'application/json'},
form: form
},
function (error, response, body) {
if (!error && response.statusCode == 200) {
// Print out the response body
console.log(body);
} else {
// TODO: Handle errors
console.log("failed.");
}
});
}
deleteMenu(form){
var self = this;
request({
url: config.del_menu(this.page_token),
method: 'DELETE',
headers: {'Content-Type': 'application/json'},
form: form
},
function (error, response, body) {
if (!error && response.statusCode == 200) {
// Print out the response body
console.log(body);
} else {
// TODO: Handle errors
console.log("cant delete menu.");
console.log(body)
}
});
}
}
module.exports = Bot