【问题标题】:Caching API Twitter calls for Twitter Profile Widget缓存 API Twitter 调用 Twitter Profile Widget
【发布时间】:2012-07-24 11:03:14
【问题描述】:

我正在本地开发一个网站, 该网站两次使用 Twitter 个人资料小部件,用于两个单独的 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 提要的标准 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>

【问题讨论】:

    标签: php jquery twitter


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-07-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-06-25
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多