【问题标题】:sending instant messages through python (msn)通过 python (msn) 发送即时消息
【发布时间】:2010-07-06 12:25:54
【问题描述】:

好的,我很清楚还有很多其他问题,但是我一直在寻找,但还没有找到一个可靠的正确答案,它不围绕 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 已经过时了,任何人都可以通过简单的例子来推荐我如何实现这一点吗? 不需要任何需要其他帐户的花哨。

【问题讨论】:

  • 这可能是由于 msnp 的最后一次更新是在 2004 年。我认为几年前 MSN 切换了协议 MSN 协议 11,我认为他们现在使用的是协议 13。不过,我可能会大错特错
  • 可能会解释这一点:raise Error(int(resp.cmd), protocol.errors[resp.cmd]) NameError: global name 'Error' is not defined

标签: python twisted msn


【解决方案1】:

还有用于 gmail 的 xmpp。

【讨论】:

  • 这是我最终使用的,尽管我几个月前就找到了它。还是谢谢。
【解决方案2】:

您使用的是 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() 

您的代码只是开始聊天而不发送任何内容;您需要添加代码以发送消息。
看看this 教程中的send_message 方法。

【讨论】:

  • 不知道该怎么做,还不允许我向另一个帐户发送消息。
  • @Code 根据教程,chats = True 选项告诉 msn 为所有当前活动的聊天会话处理命令。
  • @system 不太清楚你的意思,但我改变了 [msn.start_chat("Joe")],现在我得到一个“未定义全局名称'错误'”我猜那是什么,需要详细说明吗?编辑:是的,我确实使用了联系人“Joe”的姓名而不是电子邮件地址
  • @system,这就是你的意思吗?contact_id = friend.get_passport_id(), contact_id = contacts.get_passport_id() 我一直收到最后一个错误。如果有任何意义,我会将它们放入 while 循环中。
  • @system 这对你有用吗?我的帐户登录但没有其他反应。编辑:联系人也是一个空列表,contact_id 显示为空
【解决方案3】:

看起来papyon 是 pymsn 库的维护分支,目前由 telepathy-butterfly 和 amsn2 使用。

papyon 是一个 MSN 客户端库,它试图抽象出 MSN 协议的血腥细节。它是未维护的 pymsn MSN 库的一个分支。 papyon 使用 GLib 主事件循环以异步方式处理网络事件。

【讨论】:

    猜你喜欢
    • 2011-05-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-08-22
    • 2017-09-26
    • 1970-01-01
    • 1970-01-01
    • 2018-06-27
    相关资源
    最近更新 更多