2010-07-06 9 views
2

ok Je suis bien conscient qu'il y a beaucoup d'autres questions à ce sujet, mais j'ai cherché et n'ai pas encore trouvé une réponse solide qui ne tourne pas autour de Jabber ou quelque chose de pire. (pas d'offense aux utilisateurs de jabber, juste je ne veux pas tous les extras qui viennent avec)envoyer des messages instantanés via python (msn)

J'ai actuellement msnp et twisted.words, je veux simplement envoyer et recevoir des messages, avoir lu beaucoup d'exemples qui ont échoué travailler, et msnp est mal documenté.

Ma préférence est msnp car elle nécessite beaucoup moins de code, je ne cherche pas quelque chose de compliqué.

En utilisant ce code je peux me connecter, et voir mes amis qui sont en ligne (ne peut pas leur envoyer des messages bien.):

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() 

J'espère avoir été assez clair, assez tard et sa tête n'est pas dans un état clair après toute cette frustration msn.

edit: depuis qu'il semble msnp est extrêmement obsolète quelqu'un peut-il recommander avec des exemples simples sur la façon dont je pourrais y parvenir? N'a pas besoin de quelque chose de fantaisie qui nécessite d'autres comptes.

+0

Ceci est probablement dû au fait que la dernière mise à jour de msnp date de 2004. Je pense qu'il y a quelques années, MSN a changé le protocole MSN de protocoles 11 et je pense qu'ils sont sur le protocole 13 maintenant. Je pourrais être horriblement mal si – dassouki

+0

pourrait potentiellement expliquer ceci: raise Error (int (resp.cmd), protocol.errors [resp.cmd]) NameError: le nom global 'Error' n'est pas défini –

Répondre

0

Il existe également xmpp qui est utilisé pour gmail.

+0

C'est ce que j'ai fini par utiliser, même si je l'ai trouvé il y a des mois. Merci quand même. –

0

Vous utilisez une bibliothèque abandonnée en 2004, donc je ne sais pas si msnp peut encore être utilisé pour parler sur MSN.
Quoi qu'il en soit, je voudrais essayer avec:

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

en utilisant l'identifiant de contact et non l'adresse e-mail.

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

Votre code lance le chat sans rien envoyer; vous devez ajouter le code pour envoyer un message.
Jetez un oeil à send_message méthode dans this tutoriel.

+0

ne sait pas ce que c'est censé faire , ne m'a pas permis d'envoyer un message à un autre compte pour le moment. –

+0

@code essayez d'utiliser le nom et non le courriel. – systempuntoout

+0

@Code selon le tutoriel, l'option chats = True indique à msn de traiter les commandes pour toutes les sessions de discussion actuellement actives. – systempuntoout

0

Il semble que papyon est une branche maintenue de la librairie pymsn, et est actuellement utilisée par telepathy-butterfly et 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.

Questions connexes