2013-03-25 113 views
1

我使用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 /數組。

回答

0

我的最終解決方法是調用Facebook的API使用PHP腳本,它是通過定期的cronjob執行。

棘手的部分是獲得來自Facebook使用Facebook的令牌交換從請求新的令牌節省時間一個永不過期的靜態令牌,並跳過與用戶帳戶登錄的需要。