我最早是在这个Blog上看到的。现在国内的Post Show也有报道了。
开发者网站在这里。
配置过程为:
-
首先创建一个用于Bot的Gmail帐户,它专门用来处理联系人加入,退出(这是完全自动化的)。我想大家的邀一定很多,建个用户非常方便。
-
修改confbot.py文件。主要修改这么几行:
account="gmail.account" # 放置你的聊天Gmail帐户
password="password" # 聊天Gmail的口令
topic="Welcome" # 主题
admins=[
'me@gmail.com', #管理员的gmail帐号名,可以有多个
]
server="gmail.com" #不用改
resource="conference" #不知道有什么用 -
然后运行python confbot.py即可。(需要你安装python,当然你还可以使用py2exe打包成可执行的程序,让不懂python的人也可以运行)
其他人使用时只要将上面聊天Gmail加入联系名单,然后如果成功向这个Gmail发消息即可。这个Bot还提供一些命令可以进行一些控制,可以在命令前加上’)'或’/',后跟命令和参数即可。目前可用的命令有(‘|’表示或者):
- )help
可用的命令列表 - )quit | )leave | )exit 消息
退出,并打印一条消息。但这样做会把你从Bot联系人中删除。当然没什么好担心的,想聊的时候再加进去即可。 - )msg 人名 消息
私聊。人名也是gmail帐号。 - )names
显示群中的人名列表。管理员的名字前面有一个@符。 - )me <表情语句>
因为是老外写的,目前支持的有:jumps, cries, hops, sighs, farts, keels over and dies
如果你没有提供表情语句,这个Bot会自动从上面的表情中选一个提示给你
对于管理员还有一些命令可以使用:
- )die
关闭Bot会话 - )kick | )boot 人名
踢人 - )addadmin 管理员邮箱
增加一个新的管理员 - )deladmin 管理员邮箱
删除一个管理员
分析一下程序的原理:
- 因为Google Talk使用的是Jabber协议,因此就可以使用Jabber相关的 Python 库了。这个Bot使用的是jabber.py,但我查找了Google发现它不支持代理服务器。比较好的一个是xmpppy模块。
- 这个Bot在收到一个消息时会先判断是否是命令,如果是则执行。否则将消息向它的所有联系人进行转发。
整个过程在 Python 的控制下还是非常简单的,但现在发现的问题就是:
- 管理配置没有与程序分离,而且没有对聊天记录的设置。
- 提示信息是英文的,对于中文用户不友好。
- 表情定义可以独立出来。
- 网络一旦中断程序就自动退出。应该是一个死循环才好。
- 不支持代理服务器。
那么可以针对这些问题作出一些改进。写出一个更适合中文用户使用的Google Talk Bot程序来。
大家感兴趣的话可以加入 china.python@gmail.com chinapug@gmail.com 与我们讨论Python的问题。目前还有一个中文Google Talk组大家感兴趣也可以加入: gtalkclub@gmail.com
G:\bot>G:\bot\confbot.py
Traceback (most recent call last):
File "G:\bot\confbot.py", line 272, in ?
con.connect()
File "G:\bot\jabber.py", line 358, in connect
raise IOError(e)
IOError: No SSL Support
是需要pyopenssl的支持吗? 但是好像找不到python2.4下windows的pyopenssl
panhudie —— 2005年09月04日 @9:18 pm
我没有装就可以呀。
limodou —— 2005年09月04日 @9:40 pm
Google Talk又一玩法
arbow —— 2005年09月04日 @9:41 pm
查了一下程序,它使用的是socket模块的ssl方法,因此不需要安装其它的ssl模块。你的Python版本是不是有问题。我在windows下没有问题。python 2.4.1。
limodou —— 2005年09月04日 @9:43 pm
重装了到python2.4.1 就可以了
不知道为什么原来的少了这个文件Python2\DLLs\_ssl.pyd
还有就是原来不能用account=’accountname@gmail.com’
这种格式的
只能用account=’accountname’
panhudie —— 2005年09月04日 @10:21 pm
呜乎哀哉!!有时bot 会有如下错误:
"""Updated directory site
Traceback (most recent call last):
File "chinapug/confbot.py", line 272, in ?
con.connect()
File "D:\program\python\modules\googlebot\jabber.py", line 358, in connect
IOError: (60, ‘Operation timed out’)
"""
怎么会有d:\ 这种目录出现的哪???
Zoom.Quiet —— 2005年09月05日 @9:05 am
原来的程序中有一个向作者网站注册的一段代码,错误就是它报的,不行可以注释掉。
limodou —— 2005年09月05日 @12:39 pm
目前几个bot 运行在啄木鸟空间,
但是本身脚本不太稳定的说,不时自个儿就停了,
大家也要一同改进她哪!!
再也不用记忆IRC 的命令了,使用GTalk 就好!
Zoom.Quiet —— 2005年09月05日 @8:49 am
用了一下还不错,最新的1.9.2能支持代理服务器吗?
xmyth —— 2006年06月20日 @12:51 pm
不支持。不知道如何加入。
limodou —— 2006年06月20日 @3:56 pm
limodou让我加入啊……impunk@gmail.com
PyThinLizzy —— 2009年01月28日 @4:16 pm