Vendetta: Scripte

Hey,

ob dies das richtige Forum ist. Falls nein, verzeiht es mir. Warum ich hier frage? Diese Seite hat mir HTMl & CSS beigebracht.

Meine Frage dreht sich nun um Scripte. Genau wie damals Html & Css - ich hatte eine Idee fuer eine Website - so habe ich nun auch eine Idee fur ein Script, jedoch wuerde ich gerne wissen, ob das nicht zu hoch gegriffen ist. Ich wuerde gerne ein Script fuer Whatsapp entwickeln, dass auf bestimmte NAchrichten bestimmte ANtworten verschickt.

  1. Ist das ein Problem, an das sich ein Anfaneger setzen sollte?
  2. Welche Sprache sollte ich lernen ? PHP, Java?
  3. Falls es zu schwer ist, haette jemand eine Problem fuer mich, an das ich mich heranwagen sollte. Ich tue mich immer ungemein schwer, ohne Problemstellungen zu lernen… Besten Gruss
  1. Hallo Vendetta,

    mein erster Gedanke wäre, dass ein Anfänger damit überfordert sein dürfte. Aber wer weiß - vielleicht kannst Du Dich ja reinfuchsen. Ich habe mit PHP oder JavaScript einen solchen Versuch noch nicht gemacht, ich weiß nicht wie komplex das ist und was es an fertigen Helfern gibt.

    Um mit WhatsApp zu kommunizieren, brauchst Du eine Programmierschnittstelle dorthin, also ein API. Google mal nach WhatsApp API, und dann wirst Du sehen, dass das Thema heiß ist. Einerseits gibt's auf GitHub jemanden, der ein PHP API zu Whatsapp anbietet (wie auch immer das dann funktioniert). Andererseits gibt's Drohungen von WhatsApp gegen API Entwickler, dass man rechtliche Schritte ergreifen will - die scheinen das also nicht zu mögen. Kein Wunder, wenn Du Dich von der API Seite ranschleichst, kann der WhatsApp Client nicht gleichzeitig dein Handy ausspionieren.

    Problem eines PHP API wäre dann noch, dass du damit eher nicht auf Messages warten kannst. Du musst ja die Nachricht vom WhatsApp Server bekommen, dass sich etwas getan hat. Oder Du musst zyklisch abfragen, ob was passiert ist - also einen Dauerprozess laufen lassen. Dafür ist PHP nicht gedacht, es ist darauf optimiert, HTTP Requeste in einem Webserver in HTTP Responses umzuwandeln. Sicherlich wird man es trotzdem irgendwie hinbekommen können. Und du kannst auch mit der Kuchengabel deine Suppe essen und mit dem Schraubendreher Nägel in die Wand schlagen… Mittel der Wahl ist hier eine andere Sprache, wie z.B. Java, C++ oder C# (kein Anspruch auf Vollständigkeit), die für dauerhaft laufende Programme ausgelegt sind.

    Wenn Du was mit JavaScript machen willst, dann entweder im Browser oder in einer Scriptumgebung wie nodejs. NodeJS ist eine Komplexitätsklasse für sich, weil dort die Programmierschnittstellen zur Umgebung eine ganz andere ist als im Browser - und das wird zumindest hier im Wiki nicht abgedeckt. JS im Browser ist auf Interaktion mit dem HTML DOM ausgelegt und legt damit eine Übung in Interaktivität nahe. Zum Einsteigen kannst Du Dir anschauen, wie man mit JavaScript auf das DOM zugreift und wie man es manipuliert. Hier steht eine ganze Menge dazu.

    Wenn Du was mit PHP machen willst, dann überlege Dir eine Web-Anwendung mit einem einfachen Frontend, die auf Benutzereingaben hin irgendwas macht. PHP verarbeitet Web-Requeste, entweder direkt durch Navigationsanweisungen durch den Anwender (klick auf Links oder Buttons mit Submit-Funktion), oder indirekt durch XMLHttpRequests (AJAX). Vielleicht kannst Du ja ein WhatsApp API nutzen, um einfach erstmal Nachrichten in den Browser zu holen. Wenn das klappt, kannst Du weiter über deinen Chatbot nachdenken...

    Rolf

    1. vielleicht kannst Du ja ein WhatsApp API nutzen, um einfach erstmal Nachrichten in den Browser zu holen. Wenn das klappt, kannst Du weiter über deinen Chatbot nachdenken

      Also ich hatte jetzt an Whatsapp fuer den Browser gedacht und nicht an die App. Das gibt es ja schon von Whatsapp selbst. Oder reden wir beide ueber etwas voellig anderes und ich denke zu flach?

      Auf jeden Fall vielen Dank Rolf fuer deine Nachricht. Das ist ja komplexer als ich dachte, aber das reizt mich ja noch mehr. Ich haette noch ein paar Fragen. Meine Idee war jetzt wie folgt:

      1.Whatsapp web browser 2. Bsp: Rolf schickt mir die Nachricht "Hey" 3. Script erkennt das 4. Antwortet automatisch mit Hey

      Ich hatte selbst schon bei bei Onlinespielen von Communitymembern gehoert, dass sie gewisse Daten aus saemtlichen Profilen einfach per Script abfragen. Deswegen kam ich auch auf die Idee, dass wenn man die Daten aus einem Profil ausliesst und speichern kann, es doch auch moeglich sein muesste, dass man die Nachrichten aus Whatsapp fuer den Browser auslesen muesste. Ist es wirklich so "einfach"?

      Das waere erstmal der Gedankengang.

      1. Also ich hatte jetzt an Whatsapp fuer den Browser gedacht und nicht an die App. Das gibt es ja schon von Whatsapp selbst. Oder reden wir beide ueber etwas voellig anderes und ich denke zu flach?

        Ich hatte an eine Webseite gedacht, wo der Serverteil (PHP) mit WhatsApp kommuniziert. Aus dem Browser heraus wirst Du auf Cross Site Probleme stoßen, weil das API auf einen anderen Server zugreifen muss als den, von dem deine Seite kommt (CORS-Problematik, die gescriptete Seite (WhatsApp) muss per HTTP Header explizit erlauben, dass sie von der Seite V (Vendetta) gescriptet wird).

        Auf jeden Fall vielen Dank Rolf fuer deine Nachricht. Das ist ja komplexer als ich dachte, aber das reizt mich ja noch mehr. Ich haette noch ein paar Fragen. Meine Idee war jetzt wie folgt:

        1.Whatsapp web browser 2. Bsp: Rolf schickt mir die Nachricht "Hey" 3. Script erkennt das 4. Antwortet automatisch mit Hey

        Vielleicht stelle ich mir das ja auch zu komplex vor, wer weiß. Aber ich sehe es so, dass das "schicken" das Problem ist. Den Rest stelle ich mir trivial vor, das ist ein bisschen Textverarbeitung, und wenn man erstmal weiß, wie man Nachrichten bekommt, wird man auch senden können.

        Ich vermute, dass WhatsApp nichts "schickt". Dafür müsste jeder WhatsApp Client einen offenen Port haben, der von außen erreichbar ist. Es wird eher so sein, dass die Clients periodisch nach neuen Nachrichten fragen. Das würde dein Client auch tun müssen. Sprich: Browser macht Ajax-Request an PHP, PHP connected zu WhatsApp und fragt, WhatsApp liefert Antwort, PHP schickt Antwort zurück. Diese Verbindungsaufnahme müsstest Du hinbekommen - und sie wird mir Sicherheit irgendeine Art von Authentisierung enthalten. Da Du bei WhatsApp kein persönliches Passwort eingerichtet hast, sondern über deine SIM Karte identifiziert wirst, und die Whatsapp-Web Authentisierung irgendwie darauf aufbaut, wird es eine Herausforderung sein, das in PHP hinzubekommen. Deswegen - Google "WhatsApp API PHP" und schau, was Du dazu findest. Oder auch andere Sprachen, wenn Du keine PHP Lösung willst.

        Alternativ macht das PHP Script das ohne Browser und läuft auf dem Server in einer Endlosschleife (mit sleep() Aufrufen zwischen den Durchläufen), nur dann siehst Du es nicht live laufen.

        Ich hatte selbst schon bei bei Onlinespielen von Communitymembern gehoert, dass sie gewisse Daten aus saemtlichen Profilen einfach per Script abfragen. Deswegen kam ich auch auf die Idee, dass wenn man die Daten aus einem Profil ausliesst und speichern kann, es doch auch moeglich sein muesste, dass man die Nachrichten aus Whatsapp fuer den Browser auslesen muesste. Ist es wirklich so "einfach"?

        Es ist nicht vergleichbar, denke ich. Was man aus "sämtlichen Profilen" abfragen kann, ist der öffentliche Teil. Normalerweise wird ein MMORPG ein Browser-Interface haben, und das Profil eines Users erreicht man per URL. Diese URL kann man in einem Script aufrufen und die HTTP Antwort dann parsen. Wenn für diesen Vorgang eine Anmeldung nötig ist, kann man einen Cookie-Storage mitlaufen lassen und so die Anmeldung über die Aufrufe hinweg erhalten.

        D.h. diese Leute scripten eine existierende Web-Oberfläche, die auf einfachen "Klick den Link und schicke eine neue Seite" Vorgängen basiert. Hat WhatsApp eine ähnliche Oberfläche? Ich habe mir WhatsApp-Web noch nicht angeschaut. Ich würde aber vermuten, dass es sehr AJAX-lastig ist, was bedeutet, dass Du die JavaScript-Teile des Webclient analysieren und verstehen musst, wenn Du das mit einem eigenen Script machen willst. Und dann kommt wieder die CORS-Problematik: Wenn dein Script ein JavaScript im Browser ist, geht es nicht. Unter NodeJS oder VBScript mit WebRequesten, was auf der Befehlszeile läuft, sieht die Sache anders aus. Die MMORPG Scripte der genannten Community Member werden so funktionieren. Sowas habe ich auch schon gebaut, mit C#, um den Browser zu scripten und regelmäßige Tätigkeiten in einem Browsergame zu automatisieren. Irgendwann kamen dann die Captchas ins Spiel, einen einfachen Captcha-Rater habe ich noch bauen können, aber auf komplexere Captchas hatte ich dann keine Lust (und kein Knowhow) mehr.

        Die böse Formulierung für deine aktuelle Sicht der Dinge wäre "Dunning-Kruger Effekt", aber das würde Dir Unrecht tun. Wer von Dunning-Kruger befallen ist, fragt sich nicht ob es "wirklich so einfach ist", sondern glaubt fest an die Einfachheit. Leider passen Glaube und Computer selten zusammen. Aber das Problem ist trotzdem da: Du kennst das Thema so wenig, dass Du keine Chance hast, die Komplexitäten abzuschätzen. Deswegen solltest Du mit kleinen Schritten anfangen, damit Du weißt, wie die grundsätzlichen Mechanismen funktionieren. Serverseitiges PHP, JavaScript im Browser, AJAX, ohne gleich fremde Ressourcen steuern zu wollen.

        Rolf

      2. Aloha ;)

        Also ich hatte jetzt an Whatsapp fuer den Browser gedacht und nicht an die App. Das gibt es ja schon von Whatsapp selbst.

        Das hört sich jetzt für mich so an, wie wenn du sowas wie Greasemonkey (für Chrome evtl. stattdessen: Tampermonkey) suchst, das dir auf einer Seite, die du besuchst (Wahtsapp Web), ein User-Script ausführt (das dann von dir noch zu schreiben wäre).

        In dem Fall ist Javascript die Sprache der Wahl und das rechtliche Problem mit der nicht-öffentlichen API tritt in den Hintergrund, weil du ja nicht blind Daten an einen Whatsapp-Server sendest sondern nur die Mittel der dir angezeigten Whatsapp-Seite nutzt und deine Benutzung über ein entsprechendes Skript, das in deinem Browser läuft, automatisierst.

        Wie genau du dann durch entsprechende DOM-Manipulation Whatsapp Web dazu bekommst, deine automatisierten Botschaften zu verschicken, da musst du dich dann noch reinfuchsen.

        Grüße,

        RIDER

        --
        Camping_RIDER a.k.a. Riders Flame a.k.a. Janosch Zoller
        # Twitter # Steam # YouTube # Self-Wiki # Selfcode: sh:) fo:) ch:| rl:) br:^ n4:? ie:% mo:| va:) js:) de:> zu:} fl:( ss:) ls:[
  2. wuerde ich gerne wissen, ob das nicht zu hoch gegriffen ist. Ich wuerde gerne ein Script fuer Whatsapp entwickeln, dass auf bestimmte NAchrichten bestimmte ANtworten verschickt.

    1. Ist das ein Problem, an das sich ein Anfaneger setzen sollte?

    Wenn du mittels eines Programms auf einen Dienst zugreifen möchtest, solltest du nach der Schnittstelle, der API für diesen Dienst suchen. Das wurde hier zwar schon geschrieben, allerdings in falschem Kontext – eine API ist grundsätzlich erstmal sprach- und plattformunabhängig, hat also nichts mit PHP oder dergleichen zu tun. Gemeint waren dort Bibliotheken oder Module, die den einfachen Zugriff aus einer Sprache heraus auf die API ermöglichen.

    WhatsApp hat nun ein spezielles Problem: WhatsApp stellt der Öffentlichkeit keine API zur Verfügung. Es gibt daher nur ein, zwei zusammengeschusterte Bibliotheken, die versuchen, auf die interne API zuzugreifen.

    Mit dem "Zusammengeschustert" ist dann auch deine Frage beantwortet: Nein, was du vorhast, ist nichts für Anfänger. (Die Idee ist nicht das Problem, aber die Umstände, die nicht verfügbare API.)

    1. Welche Sprache sollte ich lernen ? PHP, Java?

    Du solltest die Sprache lernen, die dir geeignet erscheint, sowohl für das Problem als auch für dich selbst, wobei ich letzteres für wichtiger erachte. Welche Sprache das nun sein soll, ist Geschmackssache.

    PHP halte ich für ein heilloses, planloses Chaos, beliebt bei Anfängern, weil's jeden Scheiss erlaubt, ungeeignet für Anfänger, weil's jeden Scheiss erlaubt. Bei deiner Erwähnung von Java in einem Atemzug mit PHP habe ich das leise Gefühl, dass du Java und Javascript verwechselst; das sind zwei Welten. Java ist eine mächtige Sprache zum Erstellen von Anwendungen, halte ich aber für Anfänger nicht ganz so leicht zu durchschauen. Javascript wiederum hat sein Anwendungsgebiet kaum in der Anwendungsentwicklung, sondern vor allem in Webseiten; möchtest du Webseiten "aktivieren", kommst du um Javascript überhaupt nicht herum, denn andere Sprachen werden im Allgemeinen von Browsern nicht unterstützt.

    Fängst du erst mit dem Programmieren an, möchtest du dich vielleicht mit Python beschäftigen (Python 3, nicht Python 2). Anfängergeeignet scheint Python mir, weil die Syntax bzw. der gesamte Programmaufbau in aller Regel klar und verständlich ist. Die Sprache ist auch weit verbreitet, du wirst also kaum Probleme haben, Hilfen zu bekommen. Eine Einführung gibt's unter https://docs.python.org/3/tutorial/index.html

    1. Falls es zu schwer ist, haette jemand eine Problem fuer mich, an das ich mich heranwagen sollte.

    Ich denke, dir ist nicht damit geholfen, von irgendwem irgendwas aufs Auge gedrückt zu bekommen.

    1. @@Regina Schauerlug

      Javascript wiederum hat sein Anwendungsgebiet kaum in der Anwendungsentwicklung, sondern vor allem in Webseiten

      Die Unterscheidung zwischen Anwendung und Webseite ist zunehmend unsinnig.

      Eine Einführung gibt's unter https://docs.python.org/3/tutorial/index.html

      Den Link hab ich mal für dich korrigiert.

      LLAP 🖖

      --
      “When UX doesn’t consider all users, shouldn’t it be known as ‘Some User Experience’ or... SUX? #a11y” —Billy Gregory
      1. Javascript wiederum hat sein Anwendungsgebiet kaum in der Anwendungsentwicklung, sondern vor allem in Webseiten

        Die Unterscheidung zwischen Anwendung und Webseite ist zunehmend unsinnig.

        Ich weiss, worauf du hinaus willst, aber deine Formulierung ist der Inbegriff des Unsinns.

        1. Hallo,

          Ich weiss, worauf du hinaus willst,

          Also hat die Kommunikation ja eigentlich funktioniert.

          aber deine Formulierung ist der Inbegriff des Unsinns.

          wowegen?

          Gruß
          Kalk

          1. Ich weiss, worauf du hinaus willst,

            Also hat die Kommunikation ja eigentlich funktioniert.

            aber deine Formulierung ist der Inbegriff des Unsinns.

            wowegen?

            ... weil die meisten Webseiten immer noch deutlich von einer Anwendung verschieden sind.

            1. Hallo

              Ich weiss, worauf du hinaus willst,

              Also hat die Kommunikation ja eigentlich funktioniert.

              aber deine Formulierung ist der Inbegriff des Unsinns.

              wowegen?

              ... weil die meisten Webseiten immer noch deutlich von einer Anwendung verschieden sind.

              weil du Javascript abgeschaltet hast 😀

              Gruß
              Jürgen

              1. ... weil die meisten Webseiten immer noch deutlich von einer Anwendung verschieden sind.

                weil du Javascript abgeschaltet hast 😀

                Die für mich wichtigsten Anwendungen im Internet funktionieren auch ohne Javascript.

                1. Hallo beatovich,

                  ... weil die meisten Webseiten immer noch deutlich von einer Anwendung verschieden sind.

                  Die für mich wichtigsten Anwendungen im Internet funktionieren auch ohne Javascript.

                  😂

                  Bis demnächst
                  Matthias

                  --
                  Rosen sind rot.
                  1. ... weil die meisten Webseiten immer noch deutlich von einer Anwendung verschieden sind. Die für mich wichtigsten Anwendungen im Internet funktionieren auch ohne Javascript.

                    Matthias

                    ???

                    1. Hallo beatovich,

                      ... weil die meisten Webseiten immer noch deutlich von einer Anwendung verschieden sind. (I) Die für mich wichtigsten Anwendungen im Internet funktionieren auch ohne Javascript. (II)

                      (I) Webseiten unterscheiden sich deutlich von Anwendungen
                      (II) Anwendungen im Internet

                      Du erkennst den Widerspruch?

                      Bis demnächst
                      Matthias

                      --
                      Rosen sind rot.
                      1. ... weil die meisten Webseiten immer noch deutlich von einer Anwendung verschieden sind. (I) Die für mich wichtigsten Anwendungen im Internet funktionieren auch ohne Javascript. (II)

                        (I) Webseiten unterscheiden sich deutlich von Anwendungen
                        (II) Anwendungen im Internet

                        Du erkennst den Widerspruch?

                        Wann lernst du die Zitatfunktion nicht nur zu nutzen, sondern auch nangemessen anzuwenden?

                        1. Hallo beatovich,

                          Ich verstehe nicht, was du mir damit sagen möchtest.

                          Bis demnächst
                          Matthias

                          --
                          Rosen sind rot.
                          1. hallo

                            Hallo beatovich,

                            Ich verstehe nicht, was du mir damit sagen möchtest.

                            Ich will dir sagen, dass man, indem man Aussagen aus dem Kontext reisst, Widersprüche erzeugen kann. Du hast hier einfach deinen eigenen Strohmann gebastelt.

                            1. Aloha ;)

                              Ich will dir sagen, dass man, indem man Aussagen aus dem Kontext reisst, Widersprüche erzeugen kann.

                              Ja... nur, dass die Aussage hier nicht aus dem Kontext gerissen wurde.

                              Du hast hier einfach deinen eigenen Strohmann gebastelt.

                              Nein - er hat dir nur aufgezeigt, dass zu extrem praktizierte Spitzfindigkeit oft in Widersprüchen endet.

                              Grüße,

                              RIDER

                              --
                              Camping_RIDER a.k.a. Riders Flame a.k.a. Janosch Zoller
                              # Twitter # Steam # YouTube # Self-Wiki # Selfcode: sh:) fo:) ch:| rl:) br:^ n4:? ie:% mo:| va:) js:) de:> zu:} fl:( ss:) ls:[
                2. Hallo,

                  Anwendungen im Internet

                  du meinst ... Webseiten?

                  Gruß
                  Kalk

      2. Eine Einführung gibt's unter https://docs.python.org/3/tutorial/index.html.

        Den Link hab ich mal für dich korrigiert.

        Wenn's dir Befriedigung verschafft, in anderer Leute Beiträge rumzupfuschen, bitte, gerne. Deine Korrektur habe ich übrigens mal für dich vollendet.

        1. @@Regina Schauerlug

          Den Link hab ich mal für dich korrigiert.

          Wenn's dir Befriedigung verschafft, in anderer Leute Beiträge rumzupfuschen, bitte, gerne.

          Nein, tut’s nicht. Mir wäre es lieber, wenn alle ihre Beiträge selbst gleich richtig verfassen würden.

          LLAP 🖖

          --
          “When UX doesn’t consider all users, shouldn’t it be known as ‘Some User Experience’ or... SUX? #a11y” —Billy Gregory