Dieser Beitrag baut auf dem am 30.09.2020 veröffentlichten Post «Login Bot – Teil 2» auf und stellt die Architektur eines Bots vor, der sich mit einem Klick auf einer belieben Anzahl Plattformen anmelden kann. Der Bau des Roboters erfordert Vorkenntnisse und Bauteile aus den beiden bereits im September 2020 veröffentlichten Login Bot Beiträgen.
Durch das Ausführen des Bots erscheint ein Input Dialog, der einem User verschiedene Plattformen zur Auswahl bietet und ihn so auswählen lässt, ob er sich in eine oder alle der aufgeführten Plattformen einloggen möchte. Anschliessend meldet sich der Bot automatisch bei den ausgewählten Plattformen an.
Der Bot wurde als State Machine gebaut. In der folgenden Abbildung ist diese State Machine ersichtlich:
Um den Bot zu bauen ist ein neuer Prozess zu erstellen und dort die Option «New», «State Machine» am oberen linken Bildschirmrand zu wählen. Eine State Machine besteht aus einem Startpunkt, einem oder mehreren States und einem Final State. Diese Objekte werden jeweils miteinander verknüpft.
Der Erste State, in der Abbildung 1 als «Input Dialog» bezeichnet, bietet dem User die Möglichkeit zu wählen in welche Plattform sich der Bot einloggen soll. Dies geschieht über die Activity «Input Dialog», welche eine Auswahl an Optionen in Form eines Drop Down Menüs bieten soll. Um einen Drop Down zu integrieren muss das Properties Menü des Input Dialogs, wie in Abbildung 2 dargestellt, angepasst werden. Damit verschiedene Optionen angezeigt werden sind diese in Form eines Arrays in Feld «Options» zu notieren. Die ausgewählte Option wird dann in einer Variablen gespeichert.
Als nächstes werden drei sehr ähnliche States erstellt, in denen der bereits in Blog Beitrag 2 vorgestellte eigentliche Login durchgeführt wird. Hierbei wird pro Plattform ein State erstellt. So kommt man in unserem Beispiel auf drei States, jeweils einer für die Plattformen Digitec, LinkedIn und Brack.
Damit der Bot weiss, in welche Plattform er sich einloggen muss wird die Variable „selectedValue“ abgefragt. Diese Abfrage wird in den Verknüpfungen zwischen dem «Input Dialog» State und den einzelnen «Login States» vorgenommen.
Die Login States können grösstenteils aus dem Blogbeitrag 2 übernommen werden, natürlich müssen bei einer anderen Website jeweils die URL, das Web-Interface und die Credentials angepasst werden. Am Ende der Login States wird eine erneute Verbindung mit der gleichen Bedingung (selectedValue = «LinkedIn» eingefügt, welche auf den «Final State» verweist.
Damit sich der Bot nicht nur auf einzelnen Plattformen sondern auch auf allen Plattformen gleichzeitig einloggen kann müssen die einzelnen States nun noch verbunden werden. Hierfür werden die States, wie in Abbildung 3 grün markiert, durch weitere Verknüpfungen verbunden. Die Bedingung hierfür lautet: «selectedValue = „Alle“». Hierdurch werden die einzelnen Logins nacheinander durchgeführt und so alle Plattformen geöffnet. Eine noch durchzuführende Anpassung betrifft die Verbindung zwischen dem «Input Dialog» und dem ersten Login State, im Screenshot der «Login Digitec». Hier muss die Condition mit einem «OR selectedValue = „Alle“» ergänzt werden.
Dieser Bot ist nun in der Lage, sich bei einzelnen oder aber allen eingebundenen Plattformen einzuloggen.
Mit der angefügten Dokumentation ist die Konfiguration des Bots Schritt für Schritt erklärt. Ausserdem ist der gebaute Roboter als .xaml-File zum Download bereitgestellt.