Jodd, Build Facebook bietet in 2 einfachen Stunden

Um die Leistung von Jerry (jQuery in Java) zu demonstrieren, haben wir ein wenig bietet Facebook, nur in zwei Stunden und nur zum Spaß :) Die Aufgabe bestand darin, einen Bot zu erstellen, das wird:







  1. anmelden, um Facebook-Account,
  2. Liste Freunden Vorschläge und
  3. Bitte senden Sie ein paar ‚Freunde hinzufügen‘ Anfragen.

Da war die Idee, Jerry zu verwenden. wir sind nicht mit Facebook-API, OAUTH Genehmigung etc; Darüber hinaus ist Facebook-API nicht alle verfügbare Funktionalität absichtlich bieten. Nur gute alte Sendeanforderung - Antwort erhalten - analysieren, analysieren Parsing-Technik.

Hinweis: Der Zweck dieser Praxis REIN BILDUNGS ist. Wir wollen keinen Schaden machen, ein Gesetz zu brechen, töten einen Welpen etc. Wenn wir etwas tun, verletzen, lassen Sie es uns wissen. und wir werden alle notwendigen Maßnahmen treffen. Danke für dein Verständnis!

Noch einmal, das ist nur eine Praxis, und der resultierende Code und das Design ist nicht die beste. Nun wollen wir die Clock beginnen!

0.00 bis 0.10 Einrichten Projekt

Der erste Schritt ist das Java-Projekt in unserem IDE (IntelliJ IDEA) einzurichten. Wir brauchen nur zwei Bibliothek Sets:

Dies ist nur ein Warm-up. Als nächstes überprüfen, ob Firefox und Firebug-Plugin installiert und funktionstüchtig ist. Wir werden Firebug müssen später HTML-Inhalte zu analysieren und zu schnüffeln die Anfragen.

Dieses Beispiel verwendet 3rd-Party-lib (Httpclient). Ähnliches Beispiel baut nur mit Jerry und Http.

0.11 bis 00.55 HTTP-Verbindung Werkzeuge

Erstellen können einige einfache HTTP-bezogene Utility-Methoden über Httpclient. Grundsätzlich müssen wir zwei Methoden, eine GET-Anforderung und die andere senden POST-Anfrage zu senden. Dies ist jedoch nicht so trivial, wie es klingt.

Erstens müssen wir über die Sitzung, das heißt, Cookies denken. Jede Anfrage muss Senden und Empfangen von Cookies vom Host. Also jedes Mal, wenn wir eine Anfrage zu senden, müssen wir vorherigen Satz von Cookies zu übergeben. Dies wird Benutzersitzung in Browser simulieren. Als nächstes müssen unsere Anforderung der Lage sein, Umleitungen automatisch zu folgen. Und nicht zu vergessen custom ‚User-Agent‘ Header zu setzen, so Facebook Host uns nicht verweigert automatisch.







Nach einigen Versuchen und Fehlern kommen wir mit dieser Schnittstelle - es ist nicht die perfekte ein, aber es funktioniert:

Für Implementierungsdetails können Sie den vollständigen Quellcode herunterladen. Die Response-Klasse ist eine einfache Bean, die mehr HTTP-Response-Produkte von Interesse sammelt: HTML-Inhalt zurückgegeben, Statuszeile und Cookies.

0.56 bis 01.00 Top-Level-Methoden

Das Hauptverfahren muss einfach sein:

1.01 bis 01.15 Login Facebook

Die Idee ist Haupt-Facebook-Seite zu laden, das Anmeldeformular finden und alle Eingangsparameter nehmen. Setzen Sie dann den Benutzernamen und das Passwort und das Formular veröffentlichen. Nach einer schnellen Analyse der Titelseite finden wir, dass das Login-Formular die folgende ID hat aus: #login_form. So lassen Sie uns endlich Jerry in Aktion sehen:

Wie gesagt: die Form finden, die alle Formularparameter erhalten, setzen Sie E-Mail und Passwort ein, und schließlich das Formular veröffentlichen. Vergessen Sie nicht die Plätzchen! Auf der ersten (GET) Anfrage sammeln wir Cookies, die in der zweiten (POST) Anforderung übergeben werden. Mal sehen, wie Formparameter zu sammeln:

Diese Methode ist trivial und nicht vollständig. Sie sollten Formular () -Methode von Jerry verwenden; dass man gibt alle Parameter einschließlich Wert von Auswahlboxen, Kontrollkästchen, Textfelder usw.

1.16 bis 01.20 Uhr Suche Freunde

Dieser ist einfach: Laden Sie einfach die ‚Freunde finden‘ Seite auf Facebook. Natürlich müssen wir noch die Cookies passieren, die Sitzung zu halten. Jerry ist hier nicht arbeiten :)

1.21 bis 01.35 Liste Freunde

Dies ist nicht so schwer. Wir müssen nur die Liste der Freunde Empfehlungen iterieren. Allerdings müssen wir mehr Daten finden: Facebook-Benutzer-ID, die Form-ID (als CSRF Schild) und die Facebook-ID eines jeden Freund. Thanx zu Jerry. Das ist einfach:)

Da wir nicht auf Spam wollte und alle Freunde auf einmal einladen, passieren wir die numberOfFriendsToInvite. es ist die Anzahl der oben genannten Freunde, die eingeladen werden. So zum Beispiel, wenn Sie passieren ‚3‘, nur die ersten drei Freunde hinzugefügt werden, der Rest wird nur aufgeführt.

1.36 bis 02.00 Uhr Freunde hinzufügen

Jodd, Build Facebook bietet in 2 einfachen Stunden

Jetzt wird es immer besser - wir brauchen nur eine POST-Anfrage zu senden, wie oben angezeigt. Also das letzte Stück des Codes ist:

Jetzt ... entspannen

Nach zwei Stunden Codierung, verdienen eine Pause;) den Bot starten und es in Aktion sehen:

Und ... Freundschaft Anfragen gesendet :)

Wenn Sie Interesse an mehr Details der Implementierung sind, können Sie den vollständigen Quellcode zum Download bereit. Auch dies ist nur ein schneller-n-dirty-Code, in zwei Stunden codierte.

Zurück: Jerry Beispiele Next: Facebook-Browser mit Jerry http

Dokumentation







In Verbindung stehende Artikel