gtalk机器人实验成功
老早以前就想做一个跟"饭否"一样可以接受IM消息的机器人了。几个月前研究过这个,但没有深入。多亏前两天英明的决定学习python。才促使这个很长时间以来的愿望成真。
记录一下实现的详细过程。其实也很简单,因为gtalk使用的是xmpp这个开源协议,刚好python又有支持这个协议的模块。所以一切都顺理成章了。
1. 安装python的运行环境。下载地址:http://www.python.org/download/
2. 安装xmpppy模块。下载地址:http://xmpppy.sourceforge.net/
3. 安装pydns模块。下载地址:http://pydns.sourceforge.net/
4. 创建程序。新建一个gtalk.py的文件,源码如下:
--------------------------------------------------------------
#encoding=utf-8
import xmpp
def process_msg(conn, msg):
text = msg.getBody()
user = msg.getFrom()
conn.send(xmpp.Message(user, text))
def StepOn(conn):
try:
conn.Process(1)
except KeyboardInterrupt: return 0
return 1
def GoOn(conn):
while StepOn(conn): pass
conn = xmpp.Client('gmail.com')
conn.connect(server=('talk.google.com',5223))
conn.RegisterHandler('message', process_msg)
conn.auth('account', 'password', 'botty')
conn.sendInitPresence()
conn.send(xmpp.Message("youfriends@gmail.com" ,"wa hahaha, this is a robot"))
GoOn(conn)
---------------------------------------------------------------
使用指南:
把代码中的account改为你的gtalk登录账号(不需要@后的部分),password改为你的登录密码。youfriends@gmail.com设为你另一个gtalk账号。然后运行此文件。
提示:
在你设置的另一个账号中应该能收到"wa hahaha, this is a robot"的消息。给account的账号发送一个消息,你会收到自已发送的内容。如果把process_msg函数稍做修改,就可以实现与"饭否"一样的便捷发布功能了。
没有评论:
发表评论