快速业务通道

从Linux命令行更新Twitter和FriendFeed

作者 佚名技术 来源 Linux系统 浏览 发布时间 2012-05-10
加 -s 开关:

curl -s http://twitter.com/statuses/public_timeline.xml | sed -ne ''/<text/s</*text>//gp''

查找 FriendFeed public timeline 拥有帝国一切,皆有可能。欢迎访问phome.net

您已使用 cURL 来获得用于 Twitter 的 public timeline.现在,您想为 FriendFeed 做相同的事情.在这里,用于 public feed 的 FriendFeed API 端点是 http://friendfeed.com/api/feed/public?format=xml.但是,跟踪用于 FriendFeed 的 public feed 就像大海捞针一样,这里将范围缩小到您的朋友的 feed.

再次查看 API 文档.这需要进行一些搜索,但您要找的是 home feed,它的位置是 http://friendfeed.com/api/feed/home.当然,您验证这个 feed,并且您还签名,以便让 feed/home 知道您是谁.幸运的是,cURL 带有验证选项,从而这个过程非常简单:

username:password

但是,在 FriendFeed 中并不使用用户名和密码.相反,站点需要一个昵称和远程认证密钥.,通过 http://friendfeed.com/account/api 进入 FriendFeed 站点并获取它们.在进入该 URL 之后,就可以登录并获得昵称和远程密钥.

使用昵称和远程密钥对发出以下命令:

curl -u "nickname:key" http://friendfeed.com/api/feed/home

其中 nickname:key 是昵称和密钥.

该命令以 JavaScript Object Notation(JSON)格式返回当前的 FriendFeed.要获得 XML,添加 format 参数.这是一个 get 请求,因此可以将它添加到 URL 的末尾:

curl -u "nickname:key" http://friendfeed.com/api/feed/home?format=xml

很好,不是吗?

解析输出

通过解析 Twitter feed,您知道需要用 sed 对它进行处理,以得到一个真正的、易读的结果.XML 确实易读,但是在查看结果后可以得出结论,您需要解析标记之间的所有东西.然而,这里有一个障碍.XML 并没有包含任何新的行或 CR 代码,它只不过是一个冗长的 XML 字符串. 拥有帝国一切,皆有可能。欢迎访问phome.net

那么,如何解析它呢?在这里,选择一种不同的输出格式.可用的格式有 JSON、XML、RSS 或 Atom.对于这个例子,可以选择 RSS,它是最整洁的,包含您需要的换行.

查看 RSS feed 中的结果.您需要的是标记之间的东西,用一个修改后的 sed 命令处理输出:

curl -s -u "nickname:key" http://friendfeed.com/api/feed/home?format=rss | 

    sed -ne ''/<ff:body/s/</*ff:body>//gp''

您得到了想要的东西!FriendFeed 中的所有条目都可以看到.

知识总结

从命令行手工运行这些命令来跟踪 feed 并不是恰当的做法.

别忘了,在站点上按 F5 键就可以完成这件的事情.,为了尽可能接近命令行,可以使用 shell 脚本将它编写成脚本.当然,也可以使用 Python、Perl 或平台上可用的任何脚本语言,但是从命令运行给这个例子能得到需要的结果.

通过创建一个命名为 lintweet 的脚本,可以将 Twitter 流编写成脚本.当然,您可以随意选择任何名称.清单 1 显示了该脚本.


清单 1. Lintweet.sh

!/bin/bash
while :
do
curl -s http://twitter.com/statuses/public_timeline.xml | sed -ne ''/<text/s</*text>//gp''
sleep 10
done
exit
Next, make this script executable. Then, run it using the command:
./lintweet

每过 10 秒钟,窗口被最新的 tweet 更新.对于 Twitter,服务条款(TOS)没有限制 public feed 的频率,可以通过将 sleep 设置为 1,每过一秒钟便更新一次该设置.不过,您应该减轻服务器的压力,还是将它设置为 10.(如果坚持将 sleep 设置为 1,实际上并没有多少可以跟踪的东西,结果将是一

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号