[Tuto] Créer un bot MSN – Partie 1

juin 20

EDIT de juin 2010 : Ce tutoriel n’est plus à l’ordre du jour (écrit en 2007). Je le laisse en ligne à titre de mémoire et de découverte mais je ne pourrais en aucun cas fournir une aide quelconque quant au développement d’un bot MSN. Pour les gens vraiment désireux de réaliser un tel projet, je vous conseille de vous intéresser à DotMSN (une librairie C# qui permet d’utiliser la plus grande partie des fonctionnalités MSN en créant son propre client et donc son propre bot auto-hebergé). C’est largement plus intéressant que d’utiliser la plateforme Incesoft qui est très instable et désormais pleine de publicité. Merci de votre compréhension et bon courage à tous ! :wink:

J’ai récemment créer un bot MSN capable de répondre à l’utilisateur automatiquement en fonction de son message. Je vais aujourd’hui vous expliquez comment procéder de A à Z. Vous pouvez réaliser ce tutoriel sans connaissances en C# mais il vous faudra un tout petit peu de logique. Je trouve que la réalisation de ce petit programme m’a apporté pas mal de connaissances en C# ! Bien sur, les programmeurs avertis peuvent récupérer la source et la modifier à leur guise dans leur compilateur préféré puisque le code n’est pas très dur à comprendre.

EDIT : Je vous conseille désormais d’utiliser ce tuto qui est le dernier en date !
1. Fonctionnement du bot

Votre Bot à besoin d’une DLL pour fonctionner, celle ci est fourni par Incesoft et regroupe toutes les fonctions que l’on va utiliser pour commander le bot MSN. Elle se trouve dans le dossier « bin/debug/ » du ZIP de ma source. Lorsque vous lancez le projet SharpDevelop, elle devrait déj? être intégrée et vous n’avez pas trop à vous en soucier !

Note : Si vous souhaitez tester mon bot MSN et en savoir plus sur lui, veuillez lire cette article : http://blog.gregmarchal.com/madbot-un-robot-msn-a-ajouter-a-vos-contacts/

2. Préparation

On va d’abord s’inscrire à la plateforme d’Incesoft.com qui va servir de relais entre le programme que l’on va créer et le compte MSN. Elle vous permettra de connecter votre robot, lui attribuer un avatar, changer son message perso… Il vous faudra donc un compte MSN pour le robot, allez c’est à vous !

1. Inscrivez vous sur sp.incesoft.com, la plateforme du bot.
2. Créez l’adresse msn du bot ici

3. Téléchargement et installation des logiciels

SharpDevelop est un compilateur gratuit, c’est le logiciel qui va générer le programme (en .exe) à partir du code source. Il a besoin pour fonctionner des NET Framework 2.0 de Microsoft.

1. Téléchargez et installez NET Framework 2.0 Runtime
2. Téléchargez et installez NET Framework 2.0 SDK
3. Téléchargez et installez SharpDevelop 2.1
4. (EDIT : La source du bot à été mise à jour le 11/07/09), téléchargez la source de mon bot MSN et dézippez la.
5. Lancez le projet SharpDevelop contenu à l’intérieur.

Vous voil? enfin dans l’espace de travail ou vous allez pouvoir créer votre bot.
Nous allons voir dans la partie suivante comment se présente le code.

4. Le code

Cette partie est bien sur la plus importante, elle est un peu longue mais essayez de la suivre le plus attentivement possible.

4.1 Informations de connexion

Au début du code, vous devriez trouver cette ligne :

Connexion Incesoft

Remplacez SP000000 par votre login Incesoft et PASSWORD par votre mot de passe Incesoft.

4.2. Zone de travail et commentaires

La zone que vous allez modifier dans le code pour apprendre des mots au robot se situe entre ces deux lignes de commentaires :

Début base de donée
Fin base de donnée

Note : Sachez que tout ce qui est mis derrière deux slash comme ceci : « // » représente des commentaires. Ca ne compte pas lors de la génération de votre programme, c’est juste des repères pour vous !

4.3. Comprendre la structure

En dessous du début de la base de données, vous devriez voir ceci :

Bout de code

Vous remarquez la structure, qui sera toujours la même ensuite :

Structure du code

Explications : On dit « If » pour dire « si », on ouvre la parenthèse pour marquer le début des conditions, on donne comme condition que le message contient « salut », on ferme la parenthèse pour marquer la fin des conditions, on ouvre le crochet « { » pour marquer le début des actions à faire si la condition est remplie, on dit d’envoyer « Salut ! », on ferme le crochet « } » pour marquer la fin des actions à faire si la condition est remplie. (Essayer de lire ça en suivant sur l’image pas à pas)

Note : Vous remarquerez que le code entre les crochets « { » , « } » est un peu plus complexe sur l’image mais il permet simplement de ne pas envoyer toujours les mêmes réponses à la réception d’un mot. Ca choisis une phrase aléatoirement.

Note : Le signe : « || » sert à séparer deux conditions, comme ça on peut écrire toutes les façons de dire bonjour à la suite. J’ai préféré en mettre deux par lignes, question d’estethique du code.

4.3. Détéction de plusieurs mots

Détécter un seul mot dans une phrase peut vite s’avérrer ridicule donc on peut aussi demander au programme de vérifier si plusieurs mots sont présents dans le message comme « au » et « revoir » lorsque l’utilisateur voudra dire au revoir à notre petit bot. Il suffit d’accorder les conditions avec « && ». J’ai utilisé cette technique pour accorder au maximum 3 mots.

Deux mots

Attention, ne faîtes pas de choses comme ceci :

Comment sa va

Car il suffit qu’un gars dise : « Comment sava ? » au robot et il ne comprendra pas !!
Préférez quelque chose comme ceci :

Commen ca va
Commen sa va

L? , le robot comprendra n’importe quel « Commennnnnsaava ?? » car il détectera « commen » + « sa » + « va » dans le même message, de même que « comment ça va???? » car il détectera bien « commen » + « ca » + « va ».

Note : N’utilisez pas de cédille, une fonction se charge de les retirer au début du programme, un « ç » deviendra donc un « c » au yeux du robot, ce qui vous simplifie grandement la vie !

5. Compilation du programme

Une fois que votre code est bien écris et que le programme vous semble plutôt pas mal, vous pouvez compiler votre programme en .EXE, il vous suffit d’aller dans le menu « Const. » de SharpDevelop et de cliquez sur « Construire la solution ». Votre programme se placera dans le dossier « bin/debug/ » avec la DLL. Ne lancez pas le programme tout de suite, il faut d’abord enregistrer votre nouveau compte MSN sur votre compte Incesoft.

6. Connecter votre robot

1. Connectez vous à votre compte créer au tout début sur sp.incesoft.com
2. Allez dans : « Msn account management »
3. Cliquez sur « Add new account » et entrez les infos de votre compte MSN.
4. Validez puis retournez dans « Msn account management »

Vous devrez voir votre adresse MSN enregistrée, cliquez simplement sur « Sign In » pour que le robot passe en statut « absent ». Vous n’avez plus qu’a lancer le programme et vérifier qu’il affiche bien : « Bot connecté avec succès sur MSN ».
A partir de l? , le robot passera « En ligne » et vous pourrez le tester en l’ajoutant à vos contacts MSN ! Vous pouvez ainsi tester les réponses qu’il donne à vos question en fonction de ce que vous lui avez appris…

Amusez vous bien et n’hésitez pas à laisser des commentaires pour demander de l’aide sur un point de la création de ce bot, je vous répondrais au plus vite.

==> Voir la deuxième partie du tuto ici. <==

Merci à Wardog pour l’aide qu’il a pu me fournir lorsque je débutais la création de ce bot.

Related Posts Plugin for WordPress, Blogger...

100 commentaires

  1. Jack /

    Hum , c’est très bien mais j’aimerais en savoir plus pour rajouter des ligne d’une même manière (c’est quoi un crochet ?) XD

    Voil? mon adresse j’espère que vous m’aiderez ^^

    micheltank@hotmail.com

  2. Jack /

    Bon je reformule , quand on dit le crochet , (Je ne sais pas encore c’est quoi lol) Tu le place ou pour que le robot réponde…

    Sinon , j’aimerais aussi savoir la manière qu’on rajoute des ligne après le , Salut , au revoir … Exemple: Dans le 4.3…

    micheltank AT hotmail.com

  3. Greg /

    Quand je disais crochet, je parlais d’un « { » pour marquer le début des actions ? faire si la condition est remplie et d’un « } » pour marquer la fin de ces actions !

    Je pense qu’avec ça, si tu relis bien le passage sur la structure, tu va vite comprendre comment c’est fait, c’est pas très dur :)

  4. Jack /

    Un nouveau problème pour le tester quand je lance le programme , il me dise : Authentication Failure

    qu’est que je fais ? ^^

  5. Greg /

    Tu mets un SP et un mot de passe Incesoft correct et ça devrait fonctionner correctement. Sauf si tu n’as pas enregistré ton adresse msn dans ton compte Incesoft comme j’ai précisé dans la dernière partie : « Connecter votre robot »

  6. Réda Benkirane /

    C’est super tout ça mais comment fait-on par exemple pour qu’un bot retienne quelquechose que vous lui dites et si vous lui posez la question après il saura vous répondre – genre de discussion : utilisteur : bjr
    bot : bonjour !
    utilisateur : ça va?
    bot : très bien et vous ?
    utilisateur : super
    bot : cool, quel est votre prénom ?
    utilisateur : Ryan
    bot : Ryan, quel beau prénom ! Je retiens votre prénom ;)


    utilisateur : Quel est mon prénom ?
    bot : mais Ryan bien sûr !

  7. Spock /

    Plop !
    Excellent ce petit cours/script.

    J’ai réussi ? faire mon bot en une soirée alors que je ne connais pas grand chose au langage C :P

    Bref, j’ai tout de même une question.

    Si je fais :

    if
    (
    msg.IndexOf(« :D ») > -1
    )
    {
    session.send(« ^^ « );
    }

    Mon bot renverra un smiley si on lui en envoit un.

    Le problème étant que je veux qu’il renvoit le smiley UNIQUEMENT SI LE MESSAGE NE CONTIENT QUE « :D ».

    Car si je fais « ca vas ? :D » Il vas me répondre « oui bla bla » et ensuite renvoyer un deuxième message contenant « ^^ ».

    Bref, si tu pouvais décrire ici la commande ou même me la mettre en place pour que je puisse me baser dessus ensuite, ça serait cool ^^
    Sinon y’a toujours mon adresse MSN ;)

    Bravo quand même, c’est excellent ^^

  8. Greg /

    Réda Benkirane :
    Oui, c’est possible de faire retenir quelque chose au bot, pour cela, il faut utiliser une base de données du type MySQL ou access mais je n’est pas encore les compétences pour faire cela, peut être prochainement ! :D

    Spock :
    Alors, soit tu mets ta parties conditions de smileys tout ? la fin du code, (comme moi) afin qu’il détecte avec le comment ça va, et s’il ne le détecte pas, qu’il renvoie « ^^ ».
    Ou alors, tu peux mettre msg.CompareTo(”:D”) == 0 Mais le problème est que si l’utilisateur écris ça « :D ! » (par exemple) ça ne détectera pas donc je te conseille la première méthode.

  9. Spock /

    Hum, je ne suis pas sûr de tout saisir xD mais je vais faire quelques tests.

    Sinon le « msg.CompareTo(”:D”) == 0″ peut tout de même m’être utile merci ^^

  10. Greg /

    C’est simple, tu mets la partie conditions des comment ça va avant la partie des smileys comme ça, si le gars mets « ça va ? :D », le robot verra le « ça va  » en premier et repondra par la phrase correspondante.

    J’ai fais la même chose, tu peux tester, en lui disant des trucs comme « Ca va ? :D » « T’es qui ? :D » … a+

  11. Spock /

    Ah okay. En gros toute la liste des commandes est passée au crible du début ? la fin pour trouver la bonne réponse, et dès que la réponse est bonne ca s’arrête, il ne cherche pas plus loin.
    Pas bête donc ^^ Moi et la programmation ca fait 4 >_

  12. Greg /

    Oui il s’arrete des qu’il y a un truc qui correspond. Tu peux aussi faire en sorte qu’il dise toutes les phraes qu’il peut trouver mais bon, il risquerait de dire trop de choses !
    L’astuce et d’organiser les différents thèmes dans le bon ordre afin qu’il soit le plus intelligent possible.

  13. Romain /

    Bonjour, j’aimerais savoir a quoi correspond exactement cette valeur: int value = rand.Next(5); ?

  14. Je t’ai répondu par MSN mais je vais quand même en faire profiter tout le monde. Cette partie du code permet de choisir une phrase aléatoirement parmi plusieurs. Si vous avez 5 phrases aléatoires = rand.Next(5).
    Vous devriez comprendre comment ça fonctionne en regardant la source.

  15. Spock /

    Hum, encore une petite précision =D

    Quand je veux que mon bot reconnaisse « salut » et y réponde, j’utilise

    msg.IndexOf(« salut ») > -1 l? y’a pas de problème, par contre si je veux que mon bot comprenne les excités qui écrivent « saluuuuuuuuut » je fais comment ? =s

    msg.IndexOf(« sal ») > -1 && msg.IndexOf(« ut ») > -1 ?

    ca ne posera pas de problèmes plus tard quand il deviendra trop élaboré ? (vu que si il y a « sal » et « ut » dans une phrase, il répondra par une salutation, et non pas par ce qu’il faudra)

  16. Spock /

    exemple tout bête, avec cette syntaxe, si on lui dit :

    « SALe fils de *UT*e » il vas répondre bonjour xD donc il faudrait trouver le moyen d’y remédier :)

  17. Ton erreur va te sembler très idiote l? … :D
    Il suffit de mettre :
    msg.IndexOf(”salu”) > -1

    et l? : « saluuuuuuuuuuuuuuuuuutcsonilfs » fonctionnera.

    Mais l’utilisateur est censé savoir qu’il parle ? un robot est n’est pas censé faire des phrases comme « saaluuté » :D
    Espérant t’avoir aidé, en tout cas j’ai fais comme ça moi et j’ai aucun problème. a+

  18. Spock /

    Merci, je vais me faire fouetter et je reviens :)

  19. Réda Benkirane /

    dites moi ski cloche ds mes formules !!!!!!!

  20. Réda Benkirane /

    c bon je crois que j’i réglé mes problemes tt seul ! :D excusez moi pr le derangement !

  21. Salut, je n’ai pas encore essayé vue que je suis en pleine installation XD. Mais je compte le faire bien comme il le faut, j’ai des bases solides (PHP :D) pour m’aider ? comprendre mais je pense pas en apprendre énormément :D

    Par contre avoir un bot toujours en ligne (même absent) c’est top…

  22. Je viens de tester le code que tu nous a donné avec toutes les explications mais je suis devant un problème, je sais qu’il est possible de connaitre le status du bot avec ‘getstatus’ mais je voudrai savoir si l’on peut drésser une liste des contacts avec leurs status, pour cela il me faudra juste savoir comment choper le status d’un et je comprendrais le truc… ;)

  23. Encore moi :D

    Je suis sur C et c’est très dur, vraiment ^^
    Je voulais essayé d’interagir avec une base de donné MySQL!
    Ensuite je me suis interressé ? faire une interface graphique, le prob c’est que … rien de rien ^^ un pote qui programme depuis un an ? du mal ? utilisé ce qu’il m’a dit ‘SDL’, ? moi d’essayer maintenant :D

    Si jamais il y a un pro, je veux bien qu’il m’aide…

  24. Up, trop dur ? installer quand on a pas les programmes de développement approprié, moi j’utilise celui du tuto et pas Dev C++ ^^

  25. Pour le statut, il faut utiliser cette classe : Public string getStatus () qui renverra ONLINE, OFFLINE… mais après pour comment l’utiliser ! :S

  26. Je te remercie, sa me suffira je pense ^^

  27. Juste une chose, j’ai posté exactement ton article ? quelques trucs près. Je sais que sur mon forum c’est un peut chiant parce qu’il faut s’inscrire mais au moins les visiteurs prennent leurs responsabilités.

    Voici l’adresse exacte de l’article :: http://forums.redstation.fr/viewtopic.php?p=666

  28. Bonjour Euh Esque Vous Pouvez mexpliquer
    sur msn.

    Voici Mon Adresse: razor_91@hotmail.fr

    MERCI

  29. babel /

    wawww! la simplicité quand meme, un gros bravo!/////- 9.5\10

    la_police@live.com

  30. babel /

    1 truc, peut-on voir les log des convo?

  31. GoniX /

    ajoute moi a tes msn…. sa serais pour de l’aide pour faire un bot msn – » sa marche pas top ….

  32. J’ai essayé pour les statuts, sa fonctionne mais il y a un seul problème…
    Sa affiche le statuts de la session ouverte donc il faut que la session se réouvre afin de récupérer de nouveau le statuts du l’interlocuteur!!

    Enfin moi je veux que sa soit ? par et que sa récupère celui de tout mes contacts ^^

    Je trouverai bien!!!

  33. Bonjour J’ai Réussi A Crée Mon Bot Mais
    Je N’Arrive pas a ajouté
    par exemple une phrase comme:
    Comment Sa va ….

    Merci De Me Répondre
    [Me Joindre le code A Rajouter]

    MERCI.

  34. c Bon g réussi.
    Mais Pouvez vous me dire Comment Cree une invitation ?

  35. ROBOT Guyom /

    Merci ! Sa Fonctionne ? merveille !!! Je continue de le programmer et je viendrai le poster dès que j’ai fini !

    Encore merci !!

    Guyom

  36. Franchement je dis merci, si tu en fait un bien!!

    Moi je suis en train d’essayer de le faire fonctionner avec une interface graphique mais il y a des problèmes!! Si quelqu’un est bon en programmation est en C# ou Csharp, je voudrai un légé coup de main :D

    Envoyez moi un mail ? cette adresse et je répondrai :: pyrofrissons@redstation.fr

    Merci d’avance…

  37. A l’attention de Razor_91 :)

    Je voulais voir ton site et tu as mit une protection javascript (le truc ? ne pas faire)! En 15 secondes je suis arrivé sur ta page d’accueil!!

    Le site est plutôt mal fait ou pas terminé, je dis pas que je sais faire mieux :D

    Mais bon, si tu voulais vraiment protéger ton site tu aurais du commencé par une protection htaccess ou php!!!

  38. Razor_91 :
    Je t’ai ajouté, pas de problème je te filerais un coup de main. Et pour ton site, LoL la protection JavaScript enlève ça tout de suite et remplace par une protection htaccess, c’est encore moins compliqué et beaucoup plus sécurisé. Et qu’entends tu par : « Comment Cree une invitation » ?

    ROBOT Guyom :
    De rien, laisse un message pour nous donner l’adresse du bot quand t’aura fini !

    PyroFrissons :
    Je peux te filer quelques conseils par MSN, pas de soucis.

  39. Houl? …
    En programmant en dur de cette manière, vous risquez de vous casser les dents ? des gros problèmes de cohérence dès que votre bot apprendra plus de choses.

    Il existe un certain nombre de principes selon lesquels peuvent fonctionner des bots.

    Par exemple, celui que vous utilisez (tout coder en dur) peut être appliqué si vous utilisez des fichiers de configuration externes au programmes. C’est plus simple ? faire évoluer.

    Sinon, il est aussi possible de faire apprendre le bot, directement de ses conversations avec des humains.

    Tenez, rajoutez cette adresse ? vos contacts : srobbot@hotmail.com

    C’est un projet personnel, basé sur un moteur auto-apprenant.

  40. Salut ‘Srobinou’, je voudrai en savoir plus sur la manière dont l’auto-apprentissage ce passe car j’ai bien connaitre quelques trucs de ce style, sa m’aiderai ? faire plus en informatique :)

    Je sais que le mieux c’est d’utiliser une base de donnée pour pour tout cela mais sa reste de la sauvegarde et je me demande vraiment comment il pourrait apprendre ce que l’on dit!!

    Merci d’avance pour les explications!

  41. srobinou /

    Dans le cas de mon bot, il s’agit tout simplement d’un fichier texte qui contient l’historique des conversations.
    Le programme retient chaque ligne et effectue des comparaisons directement avec la question posée. Si vous avez des questions, envoyez-les moi par mail ;) (srobzz arobase yahoo point fr)

  42. Scrobinou je ne me suis pas encore trop cassé les dents mais c’est vrai que desfois … Le truc c’est que c’est exactement ce que je recherchais moi, de plus, je lui fait dire des phrases aléatoires donc ça élargit un peu son vocabulaire.

    Et je prévois pour bientôt de le coupler ? une base MySQL pour qu’il retienne des infos sur l’utilisateur comme l’âge, le surnom…

  43. Quelqu’un a dit ? mon bot hier
    « ça suit pas une conversation apres on comment mon robot ?? »

    lol.
    Je précise que la base de données de mon bot ne contient pour l’instant que quelques dizaines de phrases. C’est donc tout ? fait normal.
    Cependant, la différence provient du fait que je n’ai jamais écrit une phrase « en dur » dans le code du bot. Il peut théoriquement apprendre n’importe quelle langue, y compris une qui n’existe pas.
    D’autre part, il existe un bot basé sur ce principe d’apprentissage, qui tourne depuis quelques années déj? (en anglais). Je vous assure qu’il sait tenir une conversation très correcte.
    (Voir ici : http://www.jabberwacky.com)
    Cela dit, il ne parle pas bien francais et reste très long ? répondre, et son code source est privé.

    Mon bot tente de suivre l’exemple, avec quelques modifications pour le rendre plus personnalisable. Mais il y a encore un long chemin ? faire…

  44. C’est vrai qu’avec une base de données, il pourrait apprendre n’importe quelle langue, mais il y a des désavantages, la base de données pourrait être surchargée !

    En tous cas, ce que je retiens moi, c’est le robot Encarta qui est codé en dur et qui suis quand même une bonne conversation.
    Et je le répète, le robot ? qui on apprends une réponse pour chaque phrase va toujours dire bonjour de la même façon. Et c’est pas vraiment ce que tout le monde recherche.

    J’ai tésté le bot en anglais il y a pas longtemps de cela, ça m’avait pas trop plu, même si son vocabulaire est excellent. :D

  45. Pour info, mySQL supporte des tables de plusieurs téraoctets, que même des milliers de personnes n’arriveraient pas ? saturer en tapant des messages jour et nuits.

    Le bot Encarta n’est pas codé « en dur », mais avec des fichiers de configuration du type « Question »=> »Réponse », que certainement des équipes entières ont mis un certain temps ? développer. Passer des heures ? taper des messages statiques n’est pas mon but…

    Une base de données n’est qu’un système de stockage, c’est l’algorithme qui permet de rendre le bot assez souple pour apprendre plusieurs langages.

    Enfin, je vous souhaite bon courage…

  46. Je n’ai rien contre MySQL, je vais m’en servir pour stocker des infos sur les contacts du bot mais je ne recherche pas non plus la perfection pour mon bot.

    Je trouve qu’au niveau du pourcentage de réponse, mon bot approche presque celui du bot Encarta. D’ailleurs le bot Encarta doit être un peu fait de la même manière, car on lui dis des trucs comme : « Je vais fldezfez », il va vous répondre => « Je suis impressionné. Bien. Et est-ce une bonne chose ? » car il aura simplement détecté les 2 mots « je » + « vais » ? la suite.

    Après chacun sa méthode, il y a plusieurs façon de faire.
    Afin de me repérer dans mon code, j’ai tout de même classé les informations avec un sommaire et des sous parties.

    Je vous souhaite de même une bonne continuation.

  47. 14falllon14 /

    Bonjours a tousse jsuis une fille qui adore es robot francais si vosu en trouvez bcp ben envoyer les moi sur mon msn fallon_labelle@hotmail.com svp car jadore avoire seci :)

    Merciii davanceeeee et si vous en crée envoyer les moi

  48. Il faudrait établir une liste des robots francophones, je fairais ça si pas mal de mes contacts ayant commencé un bot MSN les finissent. Même si c’est jamais fini un bot ! Sinon, le robot encarta fr est super mais t’as déj? du lui parler. :D

  49. ROBOT Guyom /

    Aidez-moi !!! Je n’arrive plus à démarrer mon robot !!! Pourtant, il marque « Bot connecté avec succes sur MSN » ! J’y comprends rien !!!!!

    Merci, d’avance

    ROBOT Guyom

  50. Ne t’inquiète pas, si tu n’a fait aucune modification d’ici là et que le problème a persisté, j’ai eu le même problème et il c’est réglé ce matin (lorsque j’ai aperçu le surnom de mon bot à l’état initial)

    Je ne sais pas d’où cela est venu mais l’intérêt est que sa fonctionne maintenant!

    Postez dés maintenant dans la partie 2 du tutoriel pour plus d’entraide…

    @ très bientôt!!!

  51. Louloulefou /

    Slt G peu etre l’aire con mais ou est k’on chope le zip de ta source ? ;)

  52. Je ne veux pas trop me moquer mais si tu survolais moins ce tutoriel, tu l’aurais trouvé!!

  53. Bonjour.
    Moi J’ai Un probleme C’est que j’ai installer mon bot …
    mais quand je clic sur:
    BotPlatformSDKDemo.exe

    sa me lance la console et sa m’affiche:
    Server Connected.
    Server Connected.
    Server Logged In.

    Mais Apres Quand Je Ouvre Une COnverstation Avec Mon Bot
    J’écrit DEs Chose, D’une Il Me Repond PAs Et De Deux
    Sa N’affiche Rien Dans La Console apart:
    Server Connected.
    Server Connected.
    Server Logged In.

    Voila Merci De ME Reponde.
    POur INFO:
    J’ai rien Configurer Apres Le login: SP…. Et Le PAssword.

  54. Bjs je sait je suis nul mé bon je débute et j’ai un proleme avec un code je veut ragouter et quant je veut compilé

    ; expected (CS1002) – C:\Documents and Settings\Administrateur\Bureau\MyRobot.cs:210,23
    et
    Invalid expression term ‘else’ (CS1525) – C:\Documents and Settings\Administrateur\Bureau\MyRobot.cs:210,18
    pour info j’ai juste rajouter un code merci de votre aide fandefoot67110@msn.com

  55. Razor_91 -> Ton bot passe bien son statut « En ligne »?
    Si non, c’est que cela ne fonctionne pas!

    Et si ton bot est déconnecté, c’est qu’il n’a pas été indiqué sur le site d’Incesoft, car celui-ci devrait-être au statut ‘Absent’…

    Pat67110 -> Ton erreur est certainement un oublie de syntaxe.
    Tu dois avoir oublié une accolade ou une parenthèse!!

    D’après ce que je lis là :: http://msdn2.microsoft.com/fr-fr/library/3hdyz4dw(vs.80).aspx

    Sa serai une erreur de concaténation, c’est les façon de raccorder des variables ou faire des calculs…
    Cherche les bouts de code souligné en rouge ;)

  56. Bonjour à tous !!!

    Tout d’abord merci à toi PyroFrissons, t’avais raison, le problème s’est réglé !!!

    Je voulais vous donner l’adresse de mon bot : guyomrobot@hotmail.fr

    Il connais la politesse (bjr,slt, a+,oui,non), les abreviations (^^, lol, mdr, ptdr,rigole), les tables d’additions (un peu…mais pas beaucoup !), et les tables de multiplication (sa ma pris 15 jours !!!! et il ne connais pas la table de 0 et de 1 !!!!)

    Je voulais vous signaler aussi l’adresse de mon site ou vous trouverez des logiciels que j’ai programmé : http://www.e-monsite.com/guyomrobot , n’hésité pas à les télécharger et à me donner votre avis.

    GUYOM

    PS : Répondez à mon sondages et mes sujets dans le forum de mon site.

  57. Louloulefou la source est dans la partie 3, lors du téléchargement des logiciels etc… mais c’est vrai que j’aurais pu la remettre au début.

    Voilà pour toi : http://leblogdegreg.free.fr/sources/Bot_MSN_v2.zip

  58. euhh nn il reste ABSENT ^^
    je part en vac demain ( samedi 28 juillet 2007 et je rev le 27 AOUT !)
    Veuiller m’expliquer pourquoi ^^
    euh si possible en me contactant :
    razor_91@hotmail.fr

  59. A l’attention de ‘ROBOT Guyom’, pour les tables de multiplication, je suppose que tu les as rentrée une apr une vue que tu n’en a fait que deux ^^

    Mais si sa te tente je peux essayer d’en faire un pour toutes en quelques lignes :D

    Sa sera simple!! (je pense) :)

  60. Je viens de trouver un script tout fait mais très long pour le calcul!!

    Je l’ai adapté à ma source mais pas encore pour que les interlocuteurs du bot puisse résoudre des calcul.
    Sa devrai aller très vite tout de même.

    J’ai trouvé la base à cette adresse ::
    http://www.csharpfr.com/codes/RESOLUTRICE_28680.aspx

  61. flolefries /

    j’ai des petits problèmes avec sharpdevelop

    flolefries2@hotmail.fr

  62. Vince0180 /

    J’ai l’air un peu con mais comment on dézzipe ? :S

  63. Vince0180 /

    J’ai un problème avec sharpdevelop2 sa me met this setup requires the .NET Framework 2.0 or higher :S

    Ps : Désolé du double poste…

  64. Greg /

    Vince0180 -> C’est parce que tu n’a pas suivi le tuto à la lettre. Je précise bien dans la partie « 3. Téléchargement et installation des logiciels » qu’il faut installer .NET Framework 2.0. Après, si tu sais pas dézipper, je ne pense pas que tu ai assez de connaissance en informatique pour comprendre ce que tu va faire après ! Dézippe avec un clic droit sur le ZIP, extraire. Si tu n’es pas sous XP, utilise WinRar.

  65. Vince0180 /

    Je l’ais retélécharger et sa me met toujours sa…

  66. Greg /

    Et installé ? :noel:

  67. Désolé de dire sa comme sa mais je suis vraiment mort de rire quand je vois des conneries pareil!

    Et je ne suis pas le seul… Avant de vouloir faire un tel trucs il faut avoir des connaissances et pour celà il faut commencer par des bases de la programmation, moi j’ai fait HTML –> JavaScript –> PHP –> VisualBasic6 –> CSharp(C#)

    Commence par la je crois!!

  68. Pas obligé de tous les apprendre mais alors lis des tutos sur le Siteduzero par exemple pour bien débuter. :wink:

  69. zapaTK /

    Bonjour,

    Ce matin, j’ai créé mon bot msn il marchait nikel (statut en ligne) et répondait comme il fallait.

    Cependant, je viens de retester il son statut reste toujours sur absent, il ne passe plu en ligne !
    Du côté de la console msdos, j’obtiens ça :
    Server connected.
    Server connected.
    Problème lors de la connexion :login timeout.

    Pourtant le login et le pass sont bien corrects.
    J’ai même ressayé de le faire fonctionner avec les sources du bot que vous fournissez à la base en changeant simplement le pass et le login mais j’obtiens toujours le même message sur msdos et son statut reste toujours sur absent.

    Merci de m’aider si quelqu’un a une idée.

  70. guillaume59 /

    salut gred j ais tester ton boot il est genial mais j ais une question a te pauser peut t on i integrer un quizz au bot ? c est a dit par exanple en tapan !quiz il pauserai des question avec des reponce défini et stocker les poin dans un fichier par example sa peut etre utile je pensse example quand o fait une conversation multiple sur msn on invite le bot celui si pourai ce metre en mode quiz grace a une commande (!quizz et !stopquizz )ensuite !top pour voir le nombre de puis de tous les concurant
    puis on pourai lui donner la comande puis qu il lance les invite a toute les persone qu il a dans sa liste d ami ( example je suis dans sa liste je lui envoi le message !invite en im et ul m invite dans une fenetre comune avec les autre persone est ce posible ?
    merci de ta reponce a bientot

  71. Aïe. :neutral: Un bloquage s’effectue peut être au niveau d’Incesoft ? Tu devrais essayer de te recréer un compte. C’est la seule chose que je puisse te conseiller. :roll:

  72. @guillaume59 -> De lui apprendre une commande quizz qui lui permettrait de dire des questions serait bien évidemment possible. Mais il faudrait que le robot se souvienne de ce qu’il vient de demander pour vérifier la réponse. Et ça, faut le stocker dans un fichier ou une base de données. J’arrive maintenant ( a peu près à écrire et lire dans une table MySQL de puis le robot ) mais c’est très compliqué. Et je ne pense pas que le robot ne soit très efficace dans une conversation à plusieurs utilisateurs. Je vais tester avec un ami de le faire parler à nous. Ton idée est superbe mais je ne doute que j’arrive à la mettre en oeuvre.

    Par contre, la commande !invite, le robot n’est pas capable de le faire. Il faut entrer en conversation avec lui pour qu’il puisse répondre, et dans l’ordre inverse ça se peut pas. :wink:
    A

  73. zapaTK /

    Greg, es-ce que tu pourrais m’ajouter sur MSN stp, mon adresse est :

    zapaTK@hotmail.com

    Merci

  74. zapaTK /

    Re,

    J’aimerais savoir, si je veux que le robot réponde exprès rien lorsque je dise quelque chose. Par exemple, si la personne en face dis : ok ou oki
    Et que je veux juste que le robot ne réponde pas je dois faire comment ?

    Sinon, j’ai remarqué que les « ? » ne passaient pas dans une ligne du genre : msg.IndexOf(« ? ») > -1 Que faut-il mettre à la place ?

    Et pour finir, je voulais savoir comment définir une police, une couleur et une taille ?

    Merci de répondre à mes questions.

  75. @zapaTK -> Bien sur que je peux t’ajouter sur MSN, mais je préfères que tu me demandes ici des conseils pour le bot afin que ça puisse servir à toute personne qui serait coincé et qui fairait une recherche.

    Pour ne pas qu’il réponde? Ca depends, tu veux qu’il n’affiche vraiment rien quand on lui dit ça ou qu’il dise qu’il n’a pas compris. Si tu veux qu’il ne réponde rien, tu peux utiliser ceci : System.Threading.Thread.Sleep(1); afin de faire comme si tu voulais faire une micro-pause.

    Et enfin, pour les « ? », c’est normal, je les avais exclu des messages pour mon code mais tu peux les remettre en recherchant et en supprimant la ligne : msg = msg.Replace(« ? », «  »);

    Par contre pour la police, je n’ai pas encore trouvé le moyen de la changer mais ça devrait être possible d’après le SDK d’Incesoft. :???:

    Espérant t’avoir aidé un maximum.
    A l’ami

  76. guillaume59 /

    Greg j ais un gros soucy depuis ce matin je buch sur la connection du bot il ce connecte mais il me met ce message => Incesoft Bot Platform dit :
    sorry, service provider offline! en faite il me dit qu il est hors ligne lol tu doi pouvoire savoir de ou sa vien lol pourai tu m aouter a tes contact stp sa sera simple merci tu doit avoire mon adress dans => E-mail (gardé secret) (requis) merci d avance greg

  77. Ok je t’ajoute :wink:

  78. Re tous, à propos de tout les messages depuis!!

    Pour que le bot ne réponde pas il suffit de mettre une condition comme s’il répondait mais d’enlever tout ce qu’il y a entre les crochets!

    En parlant des invitation pour une conversation à plusieurs, il est impossible de faire ceci avec le bot d’Incesoft (version gratuite) mais si quelqu’un est assé fou pour le payer, il aura quelques fonctionnalités supplémentaires!

    Depuis quelques heures Incesoft pose problème au niveau de la connexion de notre bijou de programmation!!
    Biensur, ils doivent avoir des problèmes mais logiquement c’est réglé le lendemain!

    Attendez patiament si vous n’arrivez pas à vous connecter et sa sera probablement rétabli dans les jours qui suivent ;)

  79. J’arrive de nouveau à me connecter (enfin mon bot) donc sa doit être la même chose de votre côté!!

    En ce qui concerne la police et la couleur d’écriture du bot elle peut être personnalisé avec une fonction que je vois ai faite!!
    (c’est en partie l’idée de Greg :D)

    public IRobotMessage TextPerso(IRobotSession session, string message)
    {
    IRobotMessage msg = session.createMessage();
    msg.FontName = « Comic Sans MS »;
    msg.FontColor = System.Drawing.Color.Teal;
    msg.setString(message);
    return msg;
    }

    Pour l’utiliser il vous faut simplement écrire sa à la place de votre phrase ::

    session.send(TextPerso(session, « Recopiez votre message ici »));

    Pour changer la couleur c’est ici ::

    msg.FontColor = System.Drawing.Color.Teal;

    Réécrivez ceci puis tapez le point au clavier pour afficher els couleurs ::

    msg.FontColor = System.Drawing.Color

    Voilà, pour plus de question Greg se fera un plaisir (moi j’ai pas encore dormi ^^)

  80. zapaTK /

    Salut PyroFrissons,

    Merci pour le tuyau pour la couleur de la police. Mais j’ai un souci, j’aimerais en fait ne pas avoir à réécrire à chaque fois :
    session.send(TextPerso….

    En fait, à la base là où il y a :

    public virtual void setFontName(IRobotMessage msg)
    {
    msg.setFontName(string.Format(« Segoe UI »));
    }

    Il faut faire comment pour pouvoir rajouter une couleur de police ? J’ai essayé un truc du genre :

    public virtual void setFontColor(IRobotMessage msg)
    {
    msg.FontColor = System.Drawing.Color.Black;
    }

    Mais bon ça passe pas, t’aurais une idée ?

    Merci

  81. zapaTK /

    Re,

    J’ai aussi une autre question, comment faire pour faire croire que le robot écrit ?

    C’est à dire, qu’on puisse voir :

    ….@hotmail.fr est en train de composé un message.

    Lorsque le robot écrit.

  82. Pour faire ceci, toujours une astuce de PyroFrissons :
    Tu rajoute ceci avant toute les conditions de detections des messages :

    session.sendTyping(); // Informer de la réponse
    System.Threading.Thread.Sleep(500); // Attente Réception

    Bien sur tu peux changer la valeur 500 pour l’adapter à tes attentes mais c’est un bon rapport. :smile:

  83. zapaTK /

    Ok merci, et sinon j’aimerais savoir pour changer l’avatar du bot faut faire comment ?

    Car j’ai testé en allant sur sp.incesoft.com sur Resource management => Display Pictures et en mettant des images (.jpg et .png 96*96px) et quand je vais dans « SP Info management » pour choisir une image dans « Display picture » ça ne la change pas. Es-ce qu’il faut rajouter quelque chose dans le code ?

    Merci

  84. C’est dans le : Info Management d’Incesoft qu’il faut choisir son avatar. Je trouvais pas au début mais c’est justeà côté du nom et message perso du bot pour le choisir.
    Sinon après avoir uploadé un avatar chez eux, tu peux intégrer cette ligne de code dans ton bot pour lui faire changer d’avatar : server.DisplayPicture = « avatar2.png »; :wink:

  85. guillaume59 /

    salut grag tous d abord merci de m avoir axepter dans t es contact
    dit je sais je te pause bcp de question comment peut on faire pour que le bot detecte que tu est dans sa liste d amie et que tu est connecter
    example tu vien de te connecter tu est dans la liste d amie du bot
    celui ci le detecte et entame une conversation du style
    salut comment va tu ?
    2 eme question est il posible de conserver autre qu une base de donner mysql ( j avais pensser dans un ficher txt ) les conversation et dans un autre fichier les speudo qui son venue lui parler si oui peut tu me donner l astuce ?
    mmerci d avance

  86. Je me permet de répondre!

    Le bot détecte automatiquement les connexions mais n’affiche pas de message, il est possible d’en mettre un biensur.

    Pour ce faire, recherche cette void ::

    public virtual void sessionOpened(IRobotSession session)

    Juste après le crochet insère comme d’habitude la phrase type qui permet d’envoyer une réponse ::

    session.send(« Salut toi, quesque tu raconte de beau? »);

  87. zapaTK /

    Greg,

    Ca ne passe pas quand j’essaie de mettre :

    server.DisplayPicture = « avatar2.png »;

    Ya une erreur sur le signe = apparemment.

    ?

  88. zapaTK /

    J’ai essayé de le poser ici :

    public virtual void setFontName(IRobotMessage msg)
    {
    msg.setFontName(string.Format(« Arial Black »));
    server.DisplayPicture = « monavatar.png »;
    }

    Ca passe au niveau du code, mais l’avatar ne change pas :?:

  89. zapaTK /

    Non en fait c’est bon j’ai trouvé !

  90. zapaTK /

    J’ai un souci, j’aimerais en fait ne pas avoir à réécrire à chaque fois :
    session.send(TextPerso…. pour changer la couleur de la police.

    En fait, à la base là où il y a :

    public virtual void setFontName(IRobotMessage msg)
    {
    msg.setFontName(string.Format(”Segoe UI”));
    }

    Il faut faire comment pour pouvoir rajouter une couleur de police ? J’ai essayé un truc du genre :

    public virtual void setFontColor(IRobotMessage msg)
    {
    msg.FontColor = System.Drawing.Color.Black;
    }

    Mais bon ça passe pas, tquelqu’un aurais une idée ?

    Sinon, même question mais pour mettre la police en gras ?

    Enfin, ça serait cool de mettre un nouveau tuto (Partie 3) en expliquant comment configurer une bdd pour le bot pour lui faire retenir des choses et qu’il apprenne de lui-même. Je sais c’est du boulot !

    Voilà merci de répondre.

  91. guillaume59 /

    merci bcp PyroFrissons pour le bout de source qui detecte automatiquement les conection :smile: maitenant reste plus qua trouver un bou de code pour eviter de garder tout en dur et de conserver autre qu une base de donner mysql ( j avais pensser dans un ficher txt ou .ini ) les conversation et dans un autre fichier les speudo qui son venue lui parler
    merci a tous

  92. De rien, pour le moment sa m’intéresse mais après sa sera différent!!

    donc je vois pas pourquoi tu veux sauvegarder des données dans un fichier sauf si biensur tu n’a pas envie d’utiliser un truc comme MySQL.

    J’ai jamais essayé de le faire mais sa doit être assé simple :)

    Par contre pour ce qui est de setFontColor je ne sais pas où tu l’a chopé mais je suis presque sur que tu est en train de modifier les composant de ton projet…

    Le seul moyen que j’ai pu réalisé est celui qui est un peu emmerdant à remplacer :D

  93. zapaTK /

    PyroFrissons,

    Tu pourrais m’expliquer comment faire une interface graphique pour le bot ?

    J’ai vu celle que ta faite avec Greg et j’aimerais en faire une dans ce style.

    Moi ça serait simplement pour une question de lisibilité (pour voir les messages du bot d’une certaine couleur et des contacts d’une autre) et également pour pouvoir lire les messages précédents car dans une console msdos, on ne peut pas remonter la fenetre indéfiniment.

    Merci de répondre.

  94. Hyume /

    Bonjour tout le monde.

    J’ai un soucis avec le changeur de couleur et de police
    1/ la police ne change pas
    2/ j’ai mon else qui fait des siennes. Du coup il marque le message en changeant juste la couleur et en plus reécrit quelque chose du genre « je comprend pas » de mon else.

    Je n’ai pas remplacer tous mes session.send(«  »), est ce que ça peut venir de ça ?

  95. Hyume /

    Le 2/ est entièrement dût à une de mes erreurs.

    Mon problème c’est donc modifié. J’ai la moitié de mon message en police du bot et l’autre moitié en la police que j’ai choisit.

    Peut être un bug de incesoft ? il a pas mal planté aujourd’hui.

  96. ZapaTK :: Pour une interface graphique c’est plus dur que faire une simple modification ou ajout de lignes pour la compréhension!

    Mais moi et Greg travaillons sur une nouvelle version qui vous plaira probablement à tous! Pas plus sur le projet il est tenu secret défense :noel:

    Hyume :: Donc il n’y a eu aucun bugues de la par d’Incesoft ces derniers temps!

    Et pour ton problème je ne peux rien te dire car tu nous apporte aucune précision là dessus! Enfin bref, si sa fonctionne chez moi, pourquoi pas chez vous :razz:

  97. zapaTK /

    Re,

    J’ai un problème avec mon avatar depuis tout à l’heure.

    Je voulais savoir si sur vos bots les avatars se changaient bien ?

    A mon avis, ça vient du serveur sp.incesoft puisque côté prog il n’y a pas d’erreur, et l’avatar marchait nikel et s’est mis à disparaitre d’un coup !

    Merci de répondre.

  98. Hyume /

    Pyro frissons :: Je viens de constater que j’étais bel et bien flou. Alors je m’explique. J’ai repris ton code de changement de police et couleur.

    J’ai changé le nom de fonction, pour voir. J’ai bien sûr changer sur mon session.send en mettant le même nom

    Je test, la couleur est bel et bien changée, cependant j’ai que 4 ou 5 lettres à la fin qui sont ds la police que j’ai mise.

    En fait la grande question que je me pose c’est de savoir si le fait de n’avoir changer qu’un seul session.send(nomfonction(session, »test couleur »);
    et de laisser tout les autres juste en session.send(«  »);
    peut jouer sur le bon fonctionnement de la fonction.

    De plus, dès que je l’ai enlevé complètement, mon avatar et pm se sont remis à fonctionner.

    merci pour la réponse

  99. D’un point de vue logique, rien ne peut interférer d’autres fonctions et je ne vois pas pourquoi seulement quelques caractères seraient changés alors que tu rentre dans la fonction, la chaine entière!

    Et si c’est une fonction ce n’est pas pour rien!!
    (éviter de répéter du code inutilement)

    En ce qui concerne l’avatar de ton bot « ZapaTK », il peut être enlevé lors de la déconnexion de celui-ci chez Incesoft!
    Et c’est ce qui m’arrive quand ils ont des problèmes mais pas en ce moment!

  100. EDIT de juin 2010 : Ce tutoriel n’est plus à l’ordre du jour (écrit en 2007). Je le laisse en ligne à titre de mémoire et de découverte mais je ne pourrais en aucun cas fournir une aide quelconque quant au développement d’un bot MSN. Pour les gens vraiment désireux de réaliser un tel projet, je vous conseille de vous intéresser à DotMSN (une librairie C# qui permet d’utiliser la plus grande partie des fonctionnalités MSN en créant son propre client et donc son propre bot auto-hebergé). C’est largement plus intéressant que d’utiliser la plateforme Incesoft qui est très instable et désormais pleine de publicité. Merci de votre compréhension et bon courage à tous ! :wink: