PHP

Для тех, кто так и не смог подружиться с Twitter API

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

Совсем недавно, когда еще мой блог располагался на 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>

У этого способа вывода есть свои достоинства и недостатки.

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

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

Недостатки:

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

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

image

Евгений

Специалист по разработке систем на современных PHP фреймворках.