2012-06-26 110 views
1

我正在本地開發一個站點, 該站點使用Twitter Profile Widget兩次,用於兩個單獨的Twitter提要。緩存API Twitter Twitter調用Twitter Profile Widget

我已經提出幾次現在的速度限制(150次/小時),我一直在想辦法來管理這個。

我發現的一種技術是使用Cron Jobs調用每10分鐘緩存Twitter API調用的PHP文件,將其保存到服務器上的txt文件並使用JQuery解析。步驟2,3,5 .. http://net.tutsplus.com/tutorials/php/how-to-create-an-advanced-twitter-widget/

我的問題是..我怎麼會然後解析JSON內容到我的Twitter配置文件小部件?

我懷疑這也許是不可能的..

下面

是用來顯示標準的Twitter個人資料的Widget代碼Twitter微博。

<script charset="utf-8" src="http://widgets.twimg.com/j/2/widget.js"></script> 
      <script> 
       new TWTR.Widget({version: 2, type: 'faves', rpp: 10, interval: 30000, title: ' ',subject: ' ', width: 210, height: 330, 
        theme: { 
        shell: { 
         background: ' ', 
         color: '#ffffff' 
        }, 
        tweets: { 
         background: '#ffffff', 
         color: '#444444', 
         links: '#53cdc7' 
        } 
        }, 
        features: { 
        scrollbar: true, 
        loop: false, 
        live: true, 
        behavior: 'all' 
        } 
       }).render().setUser('diariesdownundr').start(); 

       new TWTR.Widget({version: 2,type: 'faves',rpp: 10,interval: 30000,title: ' ',subject: ' ',width: 210,height: 330, 
        theme: { 
        shell: { 
         background: ' ', 
         color: '#ffffff' 
        }, 
        tweets: { 
         background: '#ffffff', 
         color: '#444444', 
         links: '#53cdc7' 
        } 
        }, 
        features: { 
        scrollbar: true, 
        loop: false, 
        live: true, 
        behavior: 'all' 
        } 
       }).render().setUser('diaries1').start(); 
      </script> 

回答

2

這確實是可能的。從http://twitter.com/javascripts/widgets/widget.js中獲取未壓縮的widget.js,然後更改var profileBase(大約第884行),以便從您的站點上的緩存文件中讀取,而不是從api.twitter.com中讀取。加載新的widjet.js而不是你現在從widgets.twimg.com加載的那個。

至於實際的'twitter cache'文件讀取 - 使用cronjob確實是一種方法。當我這樣做時,我使用curl向api.twitter.com發出了與當前的widget.js完全相同的請求 - 如果我抓住由widget.js發出的請求的整個URL以及所有GET參數(例如你可以在Firebug中看到這個),將它扔到curl(curl_init($ url)和curl_exec($ url)),並將curl_exec的輸出寫入緩存文件。