gpt4 book ai didi

php - 缓存来自 Facebook 的 Open Graph 结果的最佳方式?

转载 作者:行者123 更新时间:2023-12-02 11:24:45 25 4
gpt4 key购买 nike

我的网站通过 cURL 查询 Facebook 的分享计数:

http://graph.facebook.com/?ids=MY_SITE_URL

但是,我经常发现我已经达到了 rate limit 。缓存此数据并将其显示在页面上的最佳机制是什么?我的网站不使用数据库,为此目的创建一个数据库似乎很愚蠢。

谢谢!

最佳答案

是的,memcache 或 Redis 是一个不错的选择。

另一种方法是您可以使用 Facebook 的批处理 API 功能。它将同时执行多个请求,因此您可以在一个查询中找到多个 URL 的共享计数。 https://developers.facebook.com/docs/graph-api/making-multiple-requests/

第二个选项是您可以在 php.ini 中创建全局数组。例如

$globalArray = array();

然后,您可以为每个共享计数 URL 创建 key ,然后存储从 API 获取的结果。例如

$globalArray['url'] = $resultFromAPI;

通过这种方式,您可以存储数据,直到刷新页面。

第三个选项是为每个共享计数 URL 创建 session 并将值存储在其中,并在用户注销时清除 session 。

然后每次当您获取特定 URL 的分享计数时,首先检查您是否有该 URL 的值?例如

if(isset($_SESSION['url']) && !empty($_SESSION['url']){
$count = $_SESSION['url'];
}else{
// fetch through facebook graph API
}

如果您使用 Zend Framework,那么 Zend Registry 也是一个不错的选择,它的工作方式与 PHP session 相同。

如果您想要最新信息,则需要调用 Graph API。但是您可以构建仅在一小时后获取数据的逻辑。我的意思是您可以每隔一小时清除这些共享 URL 的 session ,然后再次将数据保存到这些 session 变量中。

希望有帮助。

关于php - 缓存来自 Facebook 的 Open Graph 结果的最佳方式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26281618/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com