通过Python发送即时消息(MSN)
好的,我知道这个问题已经有很多人问过了,但我一直在找,还是没找到一个靠谱的答案,不想用jabber或者更复杂的东西。(对使用jabber的人没有冒犯的意思,只是我不想要那些额外的东西)
我现在用的是msnp和twisted.words,我只是想发送和接收消息,之前看了很多例子,但都没能成功,而且msnp的文档也很差。
我更喜欢用msnp,因为它需要的代码少,我不想要太复杂的东西。
用这段代码我可以登录,并查看在线的朋友(但不能给他们发消息):
import msnp
import time, threading
msn = msnp.Session()
msn.login('XXXXXXX@hotmail.com', 'XXXXXX')
msn.sync_friend_list()
class MSN_Thread(threading.Thread):
def run(self):
msn.start_chat("XXXXXXX@hotmail.com") #this does not work
while True:
msn.process()
time.sleep(1)
start_msn = MSN_Thread()
start_msn.start()
我希望我说得够清楚,已经很晚了,我的脑子在经历了这么多msn的挫折后有点混乱。
补充一下:因为msnp似乎非常过时,有没有人能推荐一些简单的例子,告诉我该怎么做?我不需要那些需要其他账户的复杂东西。
3 个回答
0
看起来 papyon 是一个正在维护的 pymsn 库的分支,目前被 telepathy-butterfly 和 amsn2 使用。
papyon 是一个 MSN 客户端库,它的目的是把 MSN 协议那些复杂的细节给简化掉。它是一个不再维护的 pymsn MSN 库的分支。papyon 使用 GLib 的主事件循环来以异步的方式处理网络事件。
0
你正在使用一个在2004年就被放弃的库,所以我不太确定msnp是否还能用来在MSN上聊天。
不过,我建议你试试:
while True:
msn.process(chats = True)
time.sleep(1)
使用联系人ID,而不是电子邮件地址。
contacts = msn.friend_list.get_friends()
contact_id = contacts.get_passport_id()
你的代码只是开始了聊天,但并没有发送任何内容;你需要添加发送消息的代码。
可以看看 send_message
方法,在这个教程里。
0
还有一种叫做xmpp的东西,它是用来支持gmail的。