отправка мгновенных сообщений через Python (MSN) - PullRequest
2 голосов
/ 06 июля 2010

хорошо, я хорошо знаю, что есть много других вопросов по этому поводу, но я искал и еще не нашел надежного правильного ответа, который не вращался бы вокруг 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 разочарование.

edit: так как кажется, что msnp чрезвычайно устарел, кто-нибудь может порекомендовать с простыми примерами, как я мог добиться этого?Не нужно ничего необычного, требующего других аккаунтов.

Ответы [ 3 ]

0 голосов
/ 29 августа 2010

Похоже, что papyon является поддерживаемым ответвлением библиотеки pymsn и в настоящее время используется telepathy-butterfly и amsn2.

papyon - это клиентская библиотека MSN, котораяпытается абстрагировать подробности протокола MSN.Это ветвь необслуживаемой библиотеки Pymsn MSN.papyon использует основной цикл событий GLib для асинхронной обработки сетевых событий.

0 голосов
/ 24 декабря 2010

Существует также xmpp, который используется для Gmail.

0 голосов
/ 06 июля 2010

Вы используете библиотеку, заброшенную в 2004 году, поэтому я не уверен, что MSNP все еще может использоваться для общения в MSN. В любом случае я бы попробовал с:

while True:
     msn.process(chats = True)
     time.sleep(1)

используя идентификатор контакта, а не адрес электронной почты.

contacts = msn.friend_list.get_friends()
contact_id = contacts.get_passport_id() 

Ваш код просто запускайте чат, ничего не отправляя; Вам необходимо добавить код для отправки сообщения.
Взгляните на метод send_message в этом учебнике .

...