Hilfe zu objektorientiertem PHP Script

sd12

Legendäres Mitglied
Ich will einen MSN MEssenger Bot machen.

Aber es scheint als bin ich zu doof dazu...

Ich habe mir folgende Class heruntergeladen:
http://flumpcakes.co.uk/php/msn-messenger

Das Script Loggt sich bei MSN ein und antwortet dem schreibenden User immer dasselbe was er gerade geschrieben hat.

- Aber WO passiert das?
- Wo kann ich den User und die eingehenden MEssages abfangen?
- Wo kann ich antworten?

Bin seit 5 Stunden am rumbasteln und hab noch nit hingekriegt.

Ich glaube es liegt daran, dass ich nicht objektorientiert arbeite
unsure.gif
 
Ich kann zwar kein PHP. Aber die Grundstruktur ist in allen objektorientierten Sprachen dieselbe.

Das sample.php macht ein neues Objekt

$msn = new msn;

conntected dann und ruft dann die Methode $msn->rx_data(); auf. Und die - in der msnp9.class.php deklariert - scheint eine Dauerschleife while (! feof($this->fp)) bereitzustellen. Da gibt es wohl irgendein Protokoll, der Befehl steht in den ersten drei Zeichen (CHL, RNG usw.).

Und da wird u.a. ein switchboard - Objekt mit 'new' initialisiert.

Sprich: Alle Zeilen mit $Var = new Objekt stellen Verzweigungen dar, da muß man sich dann die entsprechenden Objekte angucken. Irgendwo sind sie schon drin - reine Fleißarbeit
tongue.gif
 
Ein mutiger Ansatz, einen MSN-Bot unter PHP zu realisieren..
wink.gif


Kleine Frage am Rande; Wie willst du das PHP-Timeout umgehen?
 
QUOTE (Alonso @ Mi 24.10.2007, 23:40) Kleine Frage am Rande; Wie willst du das PHP-Timeout umgehen?

wahrscheinlich mit set_timeout(0);
wink.gif

aber php ist wohl wirklich nicht die sprache für einen bot
 
QUOTE (jAuer @ Mi 24.10.2007, 21:41) Ich kann zwar kein PHP. Aber die Grundstruktur ist in allen objektorientierten Sprachen dieselbe.

Das sample.php macht ein neues Objekt

$msn = new msn;

conntected dann und ruft dann die Methode $msn->rx_data(); auf. Und die - in der msnp9.class.php deklariert - scheint eine Dauerschleife while (! feof($this->fp)) bereitzustellen. Da gibt es wohl irgendein Protokoll, der Befehl steht in den ersten drei Zeichen (CHL, RNG usw.).

Und da wird u.a. ein switchboard - Objekt mit 'new' initialisiert.

Sprich: Alle Zeilen mit $Var = new Objekt stellen Verzweigungen dar, da muß man sich dann die entsprechenden Objekte angucken. Irgendwo sind sie schon drin - reine Fleißarbeit
tongue.gif


jAuer
Das stimmt ganz bestimmt alles was Du geschrieben hast. Leider hilft es mir aber nicht weiter :-(

Das mit dem Timeout ist das kleinste Problem...

Wenn nur endlich die Klasse verstehen würde :-(
 
Geh mal in "msnp9.class.php" auf zeile 164

dort ersetzt du:
CODE if ($msg = $sbsess->rx_im())

mit

CODE if ($msg = "Juhuu, ich habs geschafft!")

oder mit

CODE if ($msg = "Microsoft mag nicht, was du da tust.")
laugh.gif
 
QUOTE (gregi @ Do 25.10.2007, 12:50) Geh mal in "msnp9.class.php" auf zeile 164

Danke!

Probier heut abend gleich...
 
QUOTE (gregi @ Do 25.10.2007, 12:50) Geh mal in "msnp9.class.php" auf zeile 164

dort ersetzt du:

CODE if ($msg = $sbsess->rx_im())

mit

CODE if ($msg = "Juhuu, ich habs geschafft!")

oder mit

CODE if ($msg = "Microsoft mag nicht, was du da tust.")
laugh.gif


Danke für den ENTSCHEIDENDEN Hinweis.

Es war aber nicht ganz korrekt.

Die Message wurde zwar geschickt, aber der Empfan der Nachricht wurde nicht bestätigt!

zwei-drei Zeilen weiter unten wir die Nachricht verschikt und bestätigt.
 
QUOTE (sd12 @ Do 25.10.2007, 10:22)Wenn nur endlich die Klasse verstehen würde :-(

Der Code in einer Methode ist doch das eher einfache Problem. Denn das ist ja bloß normaler PHP-Code.

Im Zweifelsfall baust Du überall Returns rein und kommentierst diese von oben her schrittweise aus. Damit lassen sich die bis jetzt noch unbekannten Dinge identifizieren.

Außerdem ist der Code doch ohnehin kommentiert:


QUOTE // send the message straight back!
$sbsess->tx_im($this->fp, $msg, $this->passport, $email);
 
jAuer

Fahrrad fahren ist ganz einfach, wenn man es mal kann.

Ich sehe bei einer Objektorientierten Sach einfach nicht durch.
 
Ich brauch mal Hilfe beim Script!! ich biete als gegenleistung auch was an!

adde mich mal bitte sofort in msn !! unter : hot_exclusiv@live.de

lg samir
 
Zurück
Oben