2010-07-06 3 views
2

ok Я хорошо знаю, что есть много других вопросов по этому поводу, но я искал и должен найти правильный правильный ответ, который не вращается вокруг jabber или что-то еще хуже. (не обижайтесь на jabber пользователей, просто я не хочу, чтобы все дополнительные функции, которые приходят с ним)отправка мгновенных сообщений через python (msn)

У меня в настоящее время есть msnp и twisted.words, я просто хочу отправлять и получать сообщения, прочитал много примеров, которые потерпели неудачу для работы, а msnp плохо документирован.

Мое предпочтение - msnp, поскольку для этого требуется гораздо меньше кода, я не ищу что-то сложное.

Используя этот код, я могу войти и посмотреть мои друзья, которые находятся в сети (не могут отправлять им сообщения, хотя.):

import msnp 
import time, threading 



msn = msnp.Session() 
msn.login('[email protected]', 'XXXXXX') 
msn.sync_friend_list() 

class MSN_Thread(threading.Thread): 
    def run(self): 
     msn.start_chat("[email protected]") #this does not work 
     while True: 
      msn.process() 
      time.sleep(1) 



start_msn = MSN_Thread() 
start_msn.start() 

Я надеюсь, что я достаточно ясно, его довольно поздно, и моя голова не находится в ясном состоянии после всего этого разочарования msn.

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

+0

это, вероятно, связано с тем, что последнее обновление msnp было в 2004 году. Я думаю, что несколько лет назад MSN переключали протоколы MSN протокола 11, и я думаю, что они сейчас находятся на Протоколе 13. Я мог бы ошибаться, хотя – dassouki

+0

мог бы объяснить это: raise Error (int (resp.cmd), protocol.errors [resp.cmd]) NameError: глобальное имя «Ошибка» не определено –

ответ

0

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

+0

Это то, что я использовал, хотя я нашел его несколько месяцев назад. Спасибо в любом случае. –

0

Вы используете библиотеку, заброшенную в 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 метод в this учебник.

+0

не уверен, что это должно было сделать , еще не разрешил мне отправлять сообщение на другой аккаунт. –

+0

@code пытается использовать имя, а не адрес электронной почты. – systempuntoout

+0

@ Код в соответствии с руководством, параметр chats = True указывает msn обрабатывать команды для всех активных сеансов чата. – systempuntoout

0

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

papyon is an MSN client library, that tries to abstract the MSN protocol gory details. It is a fork of the unmaintained pymsn MSN library. papyon uses the GLib main event loop to process the network events in an asynchronous manner.