我最早是在这个Blog上看到的。现在国内的Post Show也有报道了。

开发者网站在这里

配置过程为:

  1. 首先创建一个用于Bot的Gmail帐户,它专门用来处理联系人加入,退出(这是完全自动化的)。我想大家的邀一定很多,建个用户非常方便。
  2. 修改confbot.py文件。主要修改这么几行:

    account="gmail.account" # 放置你的聊天Gmail帐户
    password="password" # 聊天Gmail的口令
    topic="Welcome" # 主题
    admins=[
     'me@gmail.com', #管理员的gmail帐号名,可以有多个
     ]
    server="gmail.com"  #不用改
    resource="conference" #不知道有什么用
  3. 然后运行python confbot.py即可。(需要你安装python,当然你还可以使用py2exe打包成可执行的程序,让不懂python的人也可以运行)

其他人使用时只要将上面聊天Gmail加入联系名单,然后如果成功向这个Gmail发消息即可。这个Bot还提供一些命令可以进行一些控制,可以在命令前加上’)'或’/',后跟命令和参数即可。目前可用的命令有(‘|’表示或者):

  1. )help
    可用的命令列表
  2. )quit | )leave | )exit 消息
    退出,并打印一条消息。但这样做会把你从Bot联系人中删除。当然没什么好担心的,想聊的时候再加进去即可。
  3. )msg 人名 消息
    私聊。人名也是gmail帐号。
  4. )names
    显示群中的人名列表。管理员的名字前面有一个@符。
  5. )me <表情语句>
    因为是老外写的,目前支持的有:jumps, cries, hops, sighs, farts, keels over and dies
    如果你没有提供表情语句,这个Bot会自动从上面的表情中选一个提示给你

对于管理员还有一些命令可以使用:

  1. )die
    关闭Bot会话
  2. )kick | )boot 人名
    踢人
  3. )addadmin 管理员邮箱
    增加一个新的管理员
  4. )deladmin 管理员邮箱
    删除一个管理员

分析一下程序的原理:

  1. 因为Google Talk使用的是Jabber协议,因此就可以使用Jabber相关的 Python 库了。这个Bot使用的是jabber.py,但我查找了Google发现它不支持代理服务器。比较好的一个是xmpppy模块。
  2. 这个Bot在收到一个消息时会先判断是否是命令,如果是则执行。否则将消息向它的所有联系人进行转发。

整个过程在 Python 的控制下还是非常简单的,但现在发现的问题就是:

  1. 管理配置没有与程序分离,而且没有对聊天记录的设置。
  2. 提示信息是英文的,对于中文用户不友好。
  3. 表情定义可以独立出来。
  4. 网络一旦中断程序就自动退出。应该是一个死循环才好。
  5. 不支持代理服务器。

那么可以针对这些问题作出一些改进。写出一个更适合中文用户使用的Google Talk Bot程序来。

大家感兴趣的话可以加入 china.python@gmail.com chinapug@gmail.com 与我们讨论Python的问题。目前还有一个中文Google Talk组大家感兴趣也可以加入: gtalkclub@gmail.com


12条评论

  1. 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

  2. 我没有装就可以呀。

  3. Google Talk又一玩法

  4. 查了一下程序,它使用的是socket模块的ssl方法,因此不需要安装其它的ssl模块。你的Python版本是不是有问题。我在windows下没有问题。python 2.4.1。

  5. 重装了到python2.4.1 就可以了

    不知道为什么原来的少了这个文件Python2\DLLs\_ssl.pyd

    还有就是原来不能用account=’accountname@gmail.com’

    这种格式的

    只能用account=’accountname’

  6. 呜乎哀哉!!有时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:\ 这种目录出现的哪???

  7. 原来的程序中有一个向作者网站注册的一段代码,错误就是它报的,不行可以注释掉。

  8. 目前几个bot 运行在啄木鸟空间,

    但是本身脚本不太稳定的说,不时自个儿就停了,

    大家也要一同改进她哪!!

    再也不用记忆IRC 的命令了,使用GTalk 就好!

  9. 用了一下还不错,最新的1.9.2能支持代理服务器吗?

  10. 不支持。不知道如何加入。

  11. limodou让我加入啊……impunk@gmail.com

发表评论

评论也有版权!