缓存API Twitter调用Twitter Profile Widget

时间:2012-06-26 11:30:54

标签: php jquery twitter

我正在本地开发一个网站, 该网站使用Twitter Profile Widget两次,用于两个独立的Twitter提要。

我现在遇到了几次限速(每小时150次通话),而且我一直在寻找管理这种方法的方法。

我发现的一种技术是使用Cron Jobs来调用PHP文件,该文件每10分钟缓存一次Twitter API调用,将其保存到服务器上的txt文件并使用JQuery进行解析。步骤2,3,5 .. http://net.tutsplus.com/tutorials/php/how-to-create-an-advanced-twitter-widget/

我的问题是..如何将JSON内容解析为我的Twitter个人资料窗口小部件?

我怀疑这可能不可能......

下面是用于显示推特供稿的标准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>

1 个答案:

答案 0 :(得分:2)

这确实是可能的。从http://twitter.com/javascripts/widgets/widget.js获取未压缩的widget.js,并更改var profileBase(在第884行附近)以从您网站上的缓存文件而不是api.twitter.com中读取。从widgets.twimg.com加载您的新widjet.js而不是您现在正在加载的那个

至于要读取的实际“twitter cache”文件 - 使用cronjob确实是一种方法。当我这样做时,我使用curl向api.twitter.com发出与当前widget.js完全相同的请求 - 如果我抓住了widget.js发出的请求的整个URL,以及所有的GET参数(例如,你可以在Firebug中看到这个),把它扔到curl(所以,curl_init($ url)和curl_exec($ url)),并将curl_exec的输出写入缓存文件。