想写个GTalk的Robot,实现简单的智能对话。采用了xmpppy library。
XMPP 是面向基于 XML 的 Internet 通信的开放协议。
图1. 由一个服务器和两个客户机组成的基本的XMPP架构
图2. 包含了XMPP网关的更为复杂的 XMPP架构
XMPP 中的地址(即 Jabber ID[JID])与标准电子邮件地址相似,但有着几个显著的差别。JID 包含一个可选节点、一个域和一个可选资源:
[ node "@" ] domain [ "/" resource ] |
RFC | Short Name | Formats | Description |
---|---|---|---|
RFC 3920 | XMPP Core | Text | HTML | XML streams, SASL, TLS, stringprep profiles, stanza semantics |
RFC 3921 | XMPP IM | Text | HTML | XMPP extensions for basic instant messaging and presence |
RFC 3922 | XMPP CPIM | Text | HTML | Mapping XMPP to the IETF's CPIM specifications |
RFC 3923 | XMPP E2E | Text | HTML | End-to-end signing and object encryption for XMPP |
RFC 4622 | XMPP URI | Text (HTML to follow) | Internationalized Resource Identifiers (IRIs) and Uniform Resource Identifiers (URIs) for XMPP |
Gtalk默认只能打开一个,为了方便测试,修改GTalk快捷方式的属性,添加/nomutex参数,这样,可以运行多个GTalk。
准备工作做好,接下来,试试PyGtalkRobot的功能,一个GTalk给另外一个GTalk账号发消息,可以看到消息被command_999_default函数处理。
如果要实现更加智能的功能,只需要扩展这个函数即可。
注意:def auth(self,user,password,resource='',sasl=1):里的sasl=1应该改成sasl=0。
这个需要修改一下,不然编译的时候有时会出错。