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

Ако преди съм ползвал този адрес:
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 );
Tweet