Twitter модификации

Днес забелязах, че скриптът, с който вземам Twitter постовете за footer-a на сайта е спрял да работи на 10 октомври. След кратко debug-ване видях, че response code-а от cURL заявката не е 200 ( ОК ), а 404 ( Not found ). Открих тази страничка в документацията на Twitter, която обяснява защо се получава така: Why am I getting a HTTP 404 for my timeline feed?

Twitter: Hamaelleon
Twitter: Hamaelleon

Ако преди съм ползвал този адрес:


curl_setopt( $c, CURLOPT_URL, 
'http://twitter.com/statuses/user_timeline/' 
. $twitterID . '.xml' ); 

.. то сега адресът вече е друг:


curl_setopt( $c, CURLOPT_URL, 
'https://api.twitter.com/1/statuses/user_timeline.rss?screen_name='
. $twitterID ); 

Response-ът отново е XML ( RSS Feed ), така че си ползвам, както обикновено:

$twData = new SimpleXMLElement( $response );

Заради променената структура на XML-a цикленето се променя от:

foreach ( $twData->status as $key => $status ) {

.. на:

foreach ( $twData->channel->item as $key => $status ) {

Има леки промени и при вземането на информацията от feed-a. Вече ги няма id, text и created_at; вместо тях са guid – което има нужда от лека промяна, за да се вземе самото id; description, където трябва да се strip-не началото; и pubDate, която също леко пренаписвам, за да пасне на предишния формат, в който я записвах в базата данни.

str_replace( 'http://twitter.com/' . $twitterID . '/statuses/', '', 
$status->guid ) 
str_replace( $twitterID . ': ', '', $status->description ); 
date( 'D M d H:i:s +0000 Y', strtotime( $status->pubDate );