技术开发 频道

使用 PHP 将 Twitter 转换为 RSS

  使用 twitterlibphp

  twitterlibphp 库包含一个方法列表,每个方法都映射到一个 Twitter API 方法。该库本身处理所有连接、身份验证、错误处理等等。包含此库并进行身份验证后,首先从其中一个方法开始。

  首先,看看使用 showUser() 方法检索特定用户的 XML 状态会发生什么。在清单 3 中,只需用帐户的凭证替换 $user 和 $pw 的值,这样就可以检索到状态信息了。

  清单 3. showUser() 方法

include_once("twitter.lib.php");

$user
= "your-username";
$pw
= "your-password";

$twitter
= new Twitter($user,$pw);

$xml
= $twitter->showUser("xml", $user);

echo $xml;

  结果在原始输出中提供了大量信息,在清单 4 所示的 XML 中,您不仅可以看到我的真实姓名、屏幕名和最后一个 tweet,还可以看到我追随的人、头像的路径,甚至我的颜色偏好。

  清单 4. showUser() 方法的输出

<?xml version="1.0" encoding="UTF-8"?>
<user>
  
<id>14129237</id>
  
<name>Thomas Myer</name>
  
<screen_name>myerman</screen_name>
  
<location>Most likely rushing to my next</location>
  
<description>Author, Infopreneur, Blogger, Consultant</description>
  
<profile_image_url>http://s3.amazonaws.com/twitter_production/profile_images/
  
74029317/myerman_gmail.com_eef446f6_normal.jpg</profile_image_url>
  
<url>http://www.tripledogs.com</url>
  
<protected>false</protected>
  
<followers_count>55</followers_count>
  
<profile_background_color>FFFFFF</profile_background_color>
  
<profile_text_color>5F5454</profile_text_color>
  
<profile_link_color>A18FB9</profile_link_color>
  
<profile_sidebar_fill_color>082C35</profile_sidebar_fill_color>
  
<profile_sidebar_border_color>120E26</profile_sidebar_border_color>
  
<friends_count>16</friends_count>
  
<created_at>Wed Mar 12 02:10:30 +0000 2008</created_at>
  
<favourites_count>3</favourites_count>
  
<utc_offset>-21600</utc_offset>
  
<time_zone>Central Time (US & Canada)</time_zone>
  
<profile_background_image_url>http://static.twitter.com/images/themes/theme1/bg.gif
  
</profile_background_image_url>
  
<profile_background_tile>false</profile_background_tile>
  
<following>false</following>
  
<notifications>false</notifications>
  
<statuses_count>427</statuses_count>
  
<status>
    
<created_at>Sun Feb 01 21:29:17 +0000 2009</created_at>
    
<id>1167762741</id>
    
<text>@adonoho [tweet snipped for privacy].</text>
    
<source>web</source>
    
<truncated>false</truncated>
    
<in_reply_to_status_id>1167558714</in_reply_to_status_id>
    
<in_reply_to_user_id>882801</in_reply_to_user_id>
    
<favorited>false</favorited>
    
<in_reply_to_screen_name>adonoho</in_reply_to_screen_name>
  
</status>
</user>

  详细给出这些信息后,使用 SimpleXML 处理这个 XML 节点集就很简单了,而且使用它可以做一些有用的事情。例如,您可以轻松地编写一个显示 screen_name 元素以及 statuses_count 的工具,可能还会显示最近状态的 created_at 节点。

  同样有趣的是,您需要的是 RSS。具体来说,您需要检索用户的时间线。拥有 RSS 格式的时间线后,就可以将它作为一个侧栏小部件、一个独特页面或任何其他可寻址的目标,放在 PHP 驱动站点上。

  要实现该操作,请更改上面的例子,使用库的 getUserTimeline() 方法,如清单 5 所示。

  清单 5. getUserTimeline() 方法

  include_once("twitter.lib.php");

  $user
= "your-username";

  $pw
= "your-password";

  $twitter
= new Twitter($user,$pw);

  $rss
= $twitter->getUserTimeline("rss", $user);

  echo $rss;

  如您所见,这个函数返回可立即使用的 RSS。

0
相关文章