如何避免拥有数百万用户的Facebook Graph API限制



我有一个WordPress网页,其中包含从公共Facebook页面检索的帖子。FB页面不是我的。但是,问题是我的网页上有数百万访问者,每次用户访问该网页时,它都会对FB页面进行API调用。由于Facebook在一段时间内只允许有限数量的API调用,因此我的限制立即达到如此庞大的访问者数量。这个问题有什么解决方案吗?我脑海中有一个想法是:

1.从Facebook检索帖子并将其存储在本地,并在每次用户访问时显示它们。可能吗?如果是,从哪里开始?

或者我们可以通过支付Facebook或类似的东西来获得更多的API调用。我准备支付尽可能多的 API 调用,以满足我的需求。 我对任何解决方案都持开放态度,并非常感谢任何帮助解决问题。

这个问题有几种可能的解决方案

将响应存储在数据库中

您可以使用应用程序向 Facebook API 的请求添加中间点。这意味着您将拥有一个数据库表,其中存储与Facebook相关的信息,可能还有生命周期,例如:

facebook_data(user_id,lifecycle_time,...

理论上,每当您需要向Facebook API发送请求时,都可以检查数据库表以查看用户是否已在该表中拥有记录以及该记录是否仍然有效。如果是这样,请将此数据提供给用户。如果没有,请向 Facebook 发送 API 请求并将响应存储在此表中。

将响应存储在本地存储/内存/文件中

您还可以将与Facebook相关的数据存储在Web浏览器的本地存储中,以存储应用程序或文件的内存,甚至是特定于每个用户的本地数据库。这将防止您的应用程序在服务器上发出的大量通信和服务器负载。

将要发送的用户请求排队

如果与 Facebook 相关的数据对您的用户来说不是很紧急,您可以将要发送的请求排队并发送单个请求,而不是针对每个用户的每次访问发送请求。您可以通过 cron 作业执行此操作。

定期向脸书发送请求

您可以将用户分组,并通过Facebook定期更新其值并存储在数据库中。

组合

当然,您可以组合这些方法,例如,您可以同时存储在本地内存、文件或 localStorage 值和数据库中,因此首先搜索本地存储的信息,如果它存在并且仍然有效,甚至不需要请求。如果不是,则检查数据库记录并在它存在且仍然有效时使用它。如果在本地资源和数据库中找不到数据,则可以发送 API 请求。