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的)?
我目前的计划是:
- 当输出页面加载,检查是否有缓存文件,如果是,加载缓存文件
- 使用递延JavaScript来创建一个AJAX调用到PHP脚本从Facebook获取更新的内容并保存到缓存文件
现在我想到的问题是,当许多用户访问输出页面时,缓存将刷新很多次。我如何查看Facebook页面的最后更新时间?如果内容是一样的,缓存不会刷新。
注:我的问题是不是在PHP解析JSON /数组。
答
我的最终解决方法是调用Facebook的API使用PHP脚本,它是通过定期的cronjob执行。
棘手的部分是获得来自Facebook使用Facebook的令牌交换从请求新的令牌节省时间一个永不过期的静态令牌,并跳过与用户帐户登录的需要。