Twitter Получение последнего твита на PHP

Тема в разделе "SMM и работа с социальными сетями", создана пользователем NIKSU, 20 июл 2012.

  1. NIKSU

    NIKSU Постоялец

    Регистр.:
    6 июн 2011
    Сообщения:
    126
    Симпатии:
    91
    Небольшой php скрипт, который получает последнее сообщение из Twitter определенного пользователя. Имеет функцию кеширования — сохраняет сообщение в текстовом файле, что позволяет избежать необходимости каждый раз загружать и обрабатывать RSS-ленту микроблога. Через определенный промежуток времени кеш обновляется из web.

    Как это работает

    Грузится RSS-лента нужного вам пользователя, выбирается последняя запись и, при необходимости, кешируется в текстовом файле. XML обрабатывается через DOMDocument.

    Атрибут public $cache_file определяет расположение файла кеша.

    Атрибут public $cache_period отвечает за частоту обновления кеша. Указывается в секундах (3600 соответствует 1 часу). Если значение равно 0, кеш игнорируется.

    Все остальное, думаю, понятно. Если есть вопросы, задавайте.

    PHP:
    <?php
     
    class GetLastTwitt{
     
      public 
    $cache_file ./last_twitt.txt’;
     
      public 
    $cache_period 0;
     
      private 
    $username;
     
      private 
    $dom;
     
      private 
    $get_xml_method ‘curl’;
     
      function 
    __construct($username){
     
        
    $this->username $username;
     
      }
     
      private function 
    setEnv(){
     
        
    $feed_url ‘http://twitter.com/statuses/user_timeline/’.$this->username.’.rss’;
     
        
    $this->dom = new DOMDocument();
     
        
    $this->dom->load($feed_url);
     
      }
     
      private function 
    returnLastTwitt (){
     
        if (
    $this->cache_period != 0)
     
          if (
    file_exists($this->cache_file))
     
            if (
    $this->cache_period $this->getCacheDateDiff())
     
              return 
    $this->getLastFromCache();
     
        return 
    $this->getLastFromWeb($this->username);
     
      }
     
      private function 
    getLastFromWeb($username){
     
        
    $this->setEnv();
     
        
    $rows $this->dom->getElementsByTagName(‘item’);
     
        
    $last_twitt $rows->item(0)->getElementsByTagName(‘title’)->item(0)->nodeValue;
     
        
    $this->cache_twitt($last_twitt);
     
        return 
    $last_twitt;
     
      }
     
      private function 
    cache_twitt($msg){
     
        
    $handle fopen($this->cache_file,’w’);
     
        
    fwrite($handle$msg);
     
        
    fclose($handle);
     
      }
     
      private function 
    getCacheDateDiff(){
     
        return 
    date(‘U’) - filemtime($this->cache_file);
     
      }
     
      private function 
    getLastFromCache(){
     
        
    $handle fopen($this->cache_file,’r’);
     
        
    $cached_twitt fread($handlefilesize($this->cache_file));
     
        
    fclose($handle);
     
        return 
    $cached_twitt;
     
      }
     
      final function 
    getLast(){
     
        return 
    $this->returnLastTwitt();
     
      }
     
    }
     
    $a = new GetLastTwitt(‘skaizer’); /* тут ваш ник */
     
    echo $a->getLast();
     
    ?>
    Пароль на архив: nulled.cc

     

    Вложения:

    • last_tweet.rar
      Размер файла:
      1,8 КБ
      Просмотров:
      9
    GANGSTArbiter и nizulko нравится это.
  2. nizulko

    nizulko

    Регистр.:
    5 ноя 2007
    Сообщения:
    166
    Симпатии:
    16
    Автор, а с кодировкой как быть? В ответ словил такой твит:

    YAVAGABUND: RT @MariaSmailovna: бляяяяяяяяяяяяя))))) http://t.co/sgE2gXuw
     
  3. o_nix

    o_nix

    Регистр.:
    7 ноя 2007
    Сообщения:
    1.073
    Симпатии:
    1.039
    nizulko попробуй в utf-8 скрипт сохранить
     
  4. nizulko

    nizulko

    Регистр.:
    5 ноя 2007
    Сообщения:
    166
    Симпатии:
    16
    Так и сохранял изначально.
     

    Вложения:

    • 11.png
      11.png
      Размер файла:
      27,1 КБ
      Просмотров:
      6
  5. NIKSU

    NIKSU Постоялец

    Регистр.:
    6 июн 2011
    Сообщения:
    126
    Симпатии:
    91
    Странно. Попробуй поменять кодировку у php файла на UTF-8 в NotePad или другом текстовом редакторе...
    Нужно преобразовать в UTF-8, не кодировать.
     
  6. nizulko

    nizulko

    Регистр.:
    5 ноя 2007
    Сообщения:
    166
    Симпатии:
    16
    Здрасьте, приехали. "Кодировка" есть "кодировка" данного файла.
    Преобразовать - это из одной кодировку в другую.
     
  7. E-body

    E-body

    Регистр.:
    6 сен 2007
    Сообщения:
    985
    Симпатии:
    331
  8. lift

    lift Читатель

    Заблокирован
    Регистр.:
    1 июл 2007
    Сообщения:
    2.226
    Симпатии:
    1.377
    Кто может мне объяснить, зачем изобретать велосипед, если есть стандартные средсва работающие? Называются они "RSS-фиды твиттер-акаунтов".
    https://twitter.com/statuses/user_timeline/НИКНЕЙМТУТ.rss
    И вперед, хоть в скрипты, хоть в программы, хоть как хочеш, так и делай.
     
  9. NIKSU

    NIKSU Постоялец

    Регистр.:
    6 июн 2011
    Сообщения:
    126
    Симпатии:
    91
    Кому нужно, тот и будет использовать этот метод.
    В программы добавлять RSS ленты... оставлять их включёнными это просто не удобно и ущербно как-то.
    К примеру через TwitterFeed у тебя не получиться добавить .rss ссылку твиттера. Так как это запрещено на TwitterFeed.
     
    GANGSTArbiter нравится это.
  10. lift

    lift Читатель

    Заблокирован
    Регистр.:
    1 июл 2007
    Сообщения:
    2.226
    Симпатии:
    1.377
    Мне стало очень интересно: ты сам видел то, что ты запостил? Что написано на 12 строке твоего кода и в моем посте? Ничего общего нет? Ты запостил кривой и узкоспециализированный RSS-парсер на php. У меня резонный вопрос возникает: нахрена он нужен, если есть нормальные готовые продукты?