Ich habe ein Tutorial gemacht, wie eine Facebook chatbot für eine Fanpage einrichten. Es funktioniert perfekt und wir können auch das Schlüsselwort ändern und die Nachricht, die ein Benutzer in Fall erscheint exakt das Stichwort.
Nun ist die einzige Sache ist, dass wir herausfinden, nicht, wie mehrere Keywords mit Antworten hinzuzufügen.
var express = require('express')
var bodyParser = require('body-parser')
var request = require('request')
var app = express()
app.set('port', (process.env.PORT || 5000))
// Process application/x-www-form-urlencoded
app.use(bodyParser.urlencoded({extended: false}))
// Process application/json
app.use(bodyParser.json())
// Index route
app.get('/', function (req, res) {
res.send('Hello world, I am a chat bot')
})
// for Facebook verification
app.get('/webhook/', function (req, res) {
if (req.query['hub.verify_token'] === 'token') {
res.send(req.query['hub.challenge'])
}
res.send('Error, wrong token')
})
// Spin up the server
app.listen(app.get('port'), function() {
console.log('running on port', app.get('port'))
})
// API End Point -
app.post('/webhook/', function (req, res) {
messaging_events = req.body.entry[0].messaging
for (i = 0; i < messaging_events.length; i++) {
event = req.body.entry[0].messaging[i]
sender = event.sender.id
if (event.message && event.message.text) {
text = event.message.text
if (text === 'hi') {
sendGenericMessage(sender)
continue
}
sendTextMessage(sender, parrot: + text.substring(0, 200))
}
if (event.postback) {
text = JSON.stringify(event.postback)
sendTextMessage(sender, Postback received: +text.substring(0, 200), token)
continue
}
}
res.sendStatus(200)
})
var token = enter token here
// function to echo back messages
function sendTextMessage(sender, text) {
messageData = {
text:text
}
request({
url: 'https://graph.facebook.com/v2.6/me/messages',
qs: {access_token:token},
method: 'POST',
json: {
recipient: {id:sender},
message: messageData,
}
}, function(error, response, body) {
if (error) {
console.log('Error sending messages: ', error)
} else if (response.body.error) {
console.log('Error: ', response.body.error)
}
})
}
// Send an test message back as two cards.
function sendGenericMessage(sender) {
messageData = {
attachment: {
type: template,
payload: {
template_type: generic,
elements: [{
title: title 1,
subtitle: subtitle,
image_url: url of image,
buttons: [{
type: web_url,
url: https://www.facebook.com/,
title: Facebook
}, {
type: web_url,
url: https://www.reddit.com,
title: Reddit
},{
type: web_url,
url: https://twitter.com/,
title: Twitter
}],
}, {
title: Title 2 ,
subtitle: Subtitle,
image_url: imgurl,
buttons: [{
type: postback,
title: title,
payload: payload,
},{
type: postback,
title: title,
payload: payload,
}, {
type: postback,
title: title,
payload: payload,
}],
}, {
title: title,
subtitle: subtitle,
image_url: http://www.google.com,
buttons: [{
type: postback,
title: title,
payload: payload,
},{
type: postback,
title: title,
payload: payload,
}, {
type: postback,
title: title,
payload: payload,
}],
}]
}
}
}
request({
url: 'https://graph.facebook.com/v2.6/me/messages',
qs: {access_token:token},
method: 'POST',
json: {
recipient: {id:sender},
message: messageData,
}
}, function(error, response, body) {
if (error) {
console.log('Error sending messages: ', error)
} else if (response.body.error) {
console.log('Error: ', response.body.error)
}
})
}













