Нестандартный способ сделать вывод ленты твиттов на сайте.

Совсем недавно, когда еще мой блог располагался на hostinger, я хотел сделать вывод своих постов из твиттера. Это все делается легко через twitter api, как рассказывается на огромном количестве сайтов, где я искал информацию.

Недавно разработчики twitter решили изменить/переписать своё API, именно поэтому в сети сейчас лежит большое количество нерабочего кода, который пытается работать с отключенным старым вариантом API.

И я пытался, скачивал, копировал, хотел запустить примеры, но случайно наткнулся на решение задачи без твиттер API.

Используется библиотека Simple Html Dom, которая парсит реальную страницу твиттера и из нее выбирает то, что вам необходимо – ваши твитты. Кстати, библиотеку можно скачать здесь.

Для демонстрации выше описанного приведу пример, где выводится 2 последних твитта из моей ленты @evgwed.

<?php
    require_once 'simple_html_dom.php'; // библиотека для парсинга
    $username = 'evgwed'; // Имя в twitter
    $maxpost = '2'; // к-во постов
    $html = file_get_html('https://twitter.com/' . $username);
    $i = '0';
    foreach ($html->find('li.expanding-stream-item') as $article) {
    $item['text'] = $article->find('p.js-tweet-text', 0)->innertext;
    $item['time'] = $article->find('small.time', 0)->innertext;
    $articles[] = $item;
    $i++;
    if ($i == $maxpost)
    break;
    }
?>
<div class="last_comment_os transparency_i">  
    <?php for ($j = 0; $j < $maxpost; $j++) { ?>
    <div class="lc_message">  
    <?=$articles[$j]['text'];?>  
    </div>  
    <div class="lc_uzer">  
    <span class="lc_ugol"></span>  
    <img class="lc_avatar" title="Евгений Эдуардович" alt="Евгений Эдуардович" src="<?php bloginfo('template_url'); ?>/img/tw_avatar.jpeg"/>  
    <span class="lc_name"><a target="_blank" title="Catine в Twitter`е" rel="nofollow" href="https://twitter.com/evgwed">evgwed</a></span>   
    </div>  
    <?php } ?>
</div>

Достоинства:

  • нет необходимости работать с API твиттера;
  • можно изменить дизайн(способ вывода) твиттов как вам захочется, чего не умеет стандартный виджет от твиттера.

Недостатки:

  • при изменении дизайна страницы твиттера, парсер перестает работать;
  • нет никакого кэширования, надо писать его самому.

Как и у любого решения есть доводы за и против, и остается лишь вам решать, что вы будете использовать. Я отказался от этого способа вывода ленты из твиттера, так как без кэширования его использовать не стоит. Поэтому я вам настоятельно рекомендую использовать Twitter API, может быть у вас получится с ним подружиться.