-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathindex.js
128 lines (113 loc) · 3.75 KB
/
index.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
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
'use strict'
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, je suis un chat bot')
})
// Facebook verification
app.get('/webhook/', function (req, res) {
if (req.query['hub.verify_token'] === 'password_facile_a_retenir') {
res.send(req.query['hub.challenge'])
}
res.send('Erreur, mauvais token')
})
// Spin up the server
app.listen(app.get('port'), function() {
console.log('running on port', app.get('port'))
})
app.post('/webhook/', function (req, res) {
var messaging_events = req.body.entry[0].messaging
for (var i = 0; i < messaging_events.length; i++) {
var event = req.body.entry[0].messaging[i]
var sender = event.sender.id
if (event.message && event.message.text) {
var text = event.message.text
if (text === 'Cards') {
sendCardMessage(sender)
continue
}
sendTextMessage(sender, "Message reçu : " + text.substring(0, 200))
}
if (event.postback) {
var text = JSON.stringify(event.postback)
sendTextMessage(sender, "Postback reçu : "+text.substring(0, 200), token)
continue
}
}
res.sendStatus(200)
})
var token = "<PAGE_TOKEN>";
function sendTextMessage(sender, text) {
var messageText = { text:text }
request({
url: 'https://graph.facebook.com/v2.6/me/messages',
qs: {access_token:token},
method: 'POST',
json: {
recipient: {id:sender},
message: messageText,
}
}, function(error, response, body) {
if (error) {
console.log('Une erreur est survenue : ', error)
} else if (response.body.error) {
console.log('Erreur: ', response.body.error)
}
})
}
function sendCardMessage(sender) {
var messageData = {
"attachment": {
"type": "template",
"payload": {
"template_type": "generic",
"elements": [{
"title": "Premiere carte",
"subtitle": "Element 1 de la liste",
// "image_url": "http://messengerdemo.parseapp.com/img/rift.png",
"buttons": [{
"type": "web_url",
"url": "https://www.messenger.com",
"title": "Visiter le site"
}, {
"type": "postback",
"title": "Acheter",
"payload": "Clic sur la premiere carte",
}],
}, {
"title": "Deuxieme carte",
"subtitle": "Element numero 2 de la liste",
// "image_url": "http://messengerdemo.parseapp.com/img/gearvr.png",
"buttons": [{
"type": "postback",
"title": "Acheter",
"payload": "Clic sur la deuxieme carte",
}],
}]
}
}
}
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('Erreur pendant l\'envoi du message ', error)
} else if (response.body.error) {
console.log('Erreur: ', response.body.error)
}
})
}