diff --git a/bot/facebook/index.js b/bot/facebook/index.js index 2354d2b..8d5a03d 100644 --- a/bot/facebook/index.js +++ b/bot/facebook/index.js @@ -9,6 +9,11 @@ const fbReply = require('claudia-bot-builder/lib/facebook/reply') const fbValidate = require('claudia-bot-builder/lib/facebook/validate-integrity') const fbTemplate = require('claudia-bot-builder/lib/facebook/format-message') +/** + * In-Memory cache for FB graph results + */ +const recipients = [] + const verifyToken = req => { if (req.query['hub.verify_token'] === process.env.FB_VERIFY_TOKEN) { return req.query['hub.challenge'] @@ -37,7 +42,11 @@ const fbMessage = async req => { const respond = async (req, res) => { const message = await fbMessage(req) if (message) { - const recipient = await FB.api(message.sender) + const recipient = + recipients[message.sender] || (await FB.api(message.sender)) + + // Cache recipients + recipients[message.sender] = recipient const replyMessage = new fbTemplate.Text( `${recipient.first_name} said: "${message.text}"`