PHP:缓存Facebook的图形API结果

问题描述:

我使用Facebook图形API用以下代码来获取我的Facebook粉丝页(共7个Facebook页面):PHP:缓存Facebook的图形API结果

<?php 
header('Content-Type: text/plain; charset=utf-8'); 
require_once('facebook.php'); 
$facebook = new Facebook(array(
    'appId' => 'MY_APP_ID', 
    'secret' => 'MY_APP_SECRET', 
)); 

$page_feed_1 = $facebook->api('MY_FB_PAGE_ID_1/feed'); 
$page_feed_2 = $facebook->api('MY_FB_PAGE_ID_2/feed'); 
// ... etc 
?> 

我打算缓存JSON结果文件,并输出页面(其中显示了Facebook网页的内容)从缓存加载文件。但是,应该我的加载顺序,如果我不能使用cron作业(是的,我的Web服务器是基于Linux的)?

我目前的计划是:

  1. 当输出页面加载,检查是否有缓存文件,如果是,加载缓存文件
  2. 使用递延JavaScript来创建一个AJAX调用到PHP脚本从Facebook获取更新的内容并保存到缓存文件

现在我想到的问题是,当许多用户访问输出页面时,缓存将刷新很多次。我如何查看Facebook页面的最后更新时间?如果内容是一样的,缓存不会刷新。

注:我的问题是不是在PHP解析JSON /数组。

我的最终解决方法是调用Facebook的API使用PHP脚本,它是通过定期的cronjob执行。

棘手的部分是获得来自Facebook使用Facebook的令牌交换从请求新的令牌节省时间一个永不过期的静态令牌,并跳过与用户帐户登录的需要。