搭建GTalk聊天机器人系列(1)——远程控制

GTalk看起来是个很垃圾的聊天软件,但仔细研究,他的魅力在于他使用了XMPP开放协议,这样你可以使用各种各样的客户端来进行聊天。

freetalk就是其中一个客户端,他的优点在于可扩展性,你可以使用scheme语言来添加你想要的功能。

这里介绍的聊天机器人不是那种会跟你聊天的机器人,只是一种简化操作的方法,能实现远程控制,查字典,缩短URL,定位IP地址等,能提高工作效率,也可以纯键盘操作。

1.准备工作

你需要两个GTalk帐号。假设其中一个帐号为A,另一个为B。这里将B作为聊天机器人。A帐号中添加B为好友,添加后,要登录B帐号确认邀请。

2.安装freetalk

安装很easy,一句话:

sudo apt-get install freetalk

其他发行版那就下原版编译吧。

freetalk的主页:http://www.gnu.org/software/freetalk/

3.写配置文件

命令如下:

mkdir ~/.freetalk

这个程序下载到刚才建立的目录中。

程序代码如下:

01 (ft-set-jid! "[email protected]") ;你的Google帐号
02 (ft-set-server! "talk.google.com") ;Google的聊天服务器,不用改
03 (ft-set-password! "passwd") ;Google帐号的密码
04 (ft-set-prompt! "#FreeTalk# ") ;命令提示符前缀,只是好看而已
05 (ft-set-sslconn! #t) ;启用加密,GTalk服务需要加密连接
06 (ft-set-port! 5223) ;设定端口号,不用改
07
08 (add-hook! ft-message-receive-hook ;添加接受消息的钩子
09     (lambda (time from nickname message)
10     (send-message-pipe from (string-append message " 2>&1"))))

最后一条命令其实是freetalk里定义的一个函数,他把输入的参数作为命令执行,并且把结果发送出去。

这里有个小的Linux技巧,命令 2>&1,将标准错误输出重定向到标准输出。因为自带的scheme函数不输出stderr,万一你的命令有错,而系统又不提示,那就不知道他在干嘛了。

4.运行freetalk

运行程序,一条命令就行了。

freetalk

这个程序会自动登录帐号B,现在你只要从帐号A中,打开对B的聊天窗口,在其中输入命令,他就会返回执行的结果。比如输入

ls /

这样就显示了所有根目录下的文件

其实这种远程控制也有个缺点,不能运行交互式的程序,比如VI,他只能执行你给的一条指令,不过对于内网的server,用这种方法就不需要进行端口映射了,很容易实现控制功能。

5.参考资料

Control your home appliance thru Internet via freetalk, Jabber/Google talk and X10 (需翻墙)

如何通过手机关闭计算机

下一篇 搭建GTalk聊天机器人系列(2)——查字典、查IP、短地址缩减 将会介绍使用各种API来实现查字典,定位IP,缩短URL等功能。

anyShare分享到:
Linux, Programming , , , , ,

2 comments


  1. 我想把这个东西 装在路由上面,还有就是。,这个交互 怎么·实现呢,一直没有好的办法~

    • Michael

      dd-wrt的路由器应该可以把,都是linux内核的,不过应该要重新编译。你说的交互是什么意思?

Leave a Reply

Your email address will not be published.