Add recipients caching
This commit is contained in:
@@ -9,6 +9,11 @@ const fbReply = require('claudia-bot-builder/lib/facebook/reply')
|
|||||||
const fbValidate = require('claudia-bot-builder/lib/facebook/validate-integrity')
|
const fbValidate = require('claudia-bot-builder/lib/facebook/validate-integrity')
|
||||||
const fbTemplate = require('claudia-bot-builder/lib/facebook/format-message')
|
const fbTemplate = require('claudia-bot-builder/lib/facebook/format-message')
|
||||||
|
|
||||||
|
/**
|
||||||
|
* In-Memory cache for FB graph results
|
||||||
|
*/
|
||||||
|
const recipients = []
|
||||||
|
|
||||||
const verifyToken = req => {
|
const verifyToken = req => {
|
||||||
if (req.query['hub.verify_token'] === process.env.FB_VERIFY_TOKEN) {
|
if (req.query['hub.verify_token'] === process.env.FB_VERIFY_TOKEN) {
|
||||||
return req.query['hub.challenge']
|
return req.query['hub.challenge']
|
||||||
@@ -37,7 +42,11 @@ const fbMessage = async req => {
|
|||||||
const respond = async (req, res) => {
|
const respond = async (req, res) => {
|
||||||
const message = await fbMessage(req)
|
const message = await fbMessage(req)
|
||||||
if (message) {
|
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(
|
const replyMessage = new fbTemplate.Text(
|
||||||
`${recipient.first_name} said: "${message.text}"`
|
`${recipient.first_name} said: "${message.text}"`
|
||||||
|
|||||||
Reference in New Issue
Block a user