Я хотел бы использовать этот SDK платформы Facebook Messenger из https://www.npmjs.com/package/facebook-bot-messenger с этим примером кода:
var MessengerPlatform = require('facebook-bot-messenger');
var app = require('express')();
var server = require('http').Server(app);
var bot = MessengerPlatform.create({
pageID: '<your page id>',
appID: '<your app id>',
appSecret: '<your app secret>',
validationToken: '<your validation token>',
pageToken: '<your page token>'
}, server);
app.use(bot.webhook('/webhook'));
bot.on(MessengerPlatform.Events.MESSAGE, function(userId, message) {
// add code below.
});
server.listen(8080);
Это моя реализация:
var MessengerPlatform = require('facebook-bot-messenger');
var app = require('express')();
var bot = MessengerPlatform.create({
pageID: process.env.PAGE_ID,
appID: process.env.APP_ID,
appSecret: process.env.APP_SECRET,
validationToken: process.env.VALIDATION_TOKEN,
pageToken: process.env.PAGE_ACCESS_TOKEN
});
app.use(bot.webhook('/messengerWebhook'));
app.get('/', validateServer);
app.post('/', handlePOST);
exports.messengerWebhook = functions.https.onRequest(app);
async function validateServer(req, res) {
const mode = req.query['hub.mode'];
const token = req.query['hub.verify_token'];
const challenge = req.query['hub.challenge'];
if (mode && token) {
if (mode == 'subscribe' && token == process.env.VALIDATION_TOKEN) {
await res.status(200).send(challenge);
} else {
await res.sendStatus(403);
}
}
}
async function handlePOST(req, res) {
bot.on(MessengerPlatform.Events.MESSAGE, function(userId, message) {
bot.sendTextMessage(userId, "hello");
});
}
функции в get будут работать правильно, но те, что в посте, ничего не сделают.
Как исправить код, чтобы правильно реализовать пример кода с помощью облачных функций?