Существует несколько возможных решений этой проблемы
Хранение ответов в базе данных
Вы можете добавить промежуточную точку к своим запросам в Facebook API, используя ваше приложение.Это будет означать, что у вас будет таблица базы данных, в которой хранится информация, связанная с Facebook, возможно, наряду с временем жизненного цикла, например:
facebook_data (user_id, lifecycle_time, ...)
Всякий раз, когда вам теоретически необходимо отправить запрос в API Facebook, вы можете проверить таблицу базы данных, чтобы узнать, есть ли у пользователя запись в этой таблице и является ли она действительной.Если это так, предоставьте эти данные пользователю.Если нет, отправьте запрос API в Facebook и сохраните ответ в этой таблице.
Хранение ответов в localStorage / memory / file
Вы также можете хранить данные, связанные с Facebook, в localStorageвеб-браузер памяти приложения или файла или даже локальной базы данных, специфичной для каждого пользователя.Это предотвратит большую коммуникацию и нагрузку на сервер, которое ваше приложение отправляет на ваши серверы.
Очередь пользовательских запросов для отправки
Если данные, связанные с Facebook, не очень срочны,ваши пользователи, вы можете ставить в очередь запросы на отправку и отправлять один запрос вместо запроса для каждого пользователя при каждом посещении.Вы можете сделать это с помощью задания cron.
Периодическая отправка запросов в Facebook
Вы можете группировать пользователей по партиям и периодически обновлять их значения через Facebook и сохранять их в базе данных.
Комбинация
Естественно, вы можете комбинировать подходы, например, вы можете хранить значения в локальной памяти, файле или localStorage и в базе данных в одно и то же время, поэтому сначала ищется локально сохраненная информация,не требуется даже запрос, если он существует и все еще действует.Если нет, то проверяет запись базы данных и использует ее, если она существует и все еще действительна.А если данные не найдены ни в локальных ресурсах, ни в вашей базе данных, вы можете отправить запрос API.