2012-06-26 2 views
1

Я разрабатываю сайт локально, сайт использует Twitter-профиль Widget дважды, для двух отдельных твиттер-каналов.Кэширование API Twitter призывает Twitter Профиль Widget

Я несколько раз сталкивался с лимитом скорости (150 звонков в час), и я искал способы управления этим.

Один метод, который я нашел, использует Cron Jobs для вызова файла PHP, который кэширует вызов API Twitter каждые 10 минут, сохраняя его в 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> 

ответ

2

Это действительно возможно. Возьмите несжатый widget.js из http://twitter.com/javascripts/widgets/widget.js и измените var profileBase (вокруг строки 884), чтобы читать из файла кеша на вашем сайте, а не api.twitter.com. Загрузите новый widjet.js, а не тот, который вы загружаете сейчас из widgets.twimg.com

Что касается фактического файла «twitter cache» для чтения с помощью cronjob, это действительно один из способов сделать это. Когда я это сделал, я использовал завиток, чтобы сделать тот же запрос на api.twitter.com, что и текущий widget.js, - он работал, если я захватил весь URL-адрес запроса, сделанного widget.js, вместе со всеми GET (вы можете увидеть это в Firebug, например), бросил его завиток (так, curl_init ($ url) и curl_exec ($ url)) и написал вывод curl_exec в файл кеша.

Смежные вопросы