Webprogrammierung für Teamspeak mit der ts3admin.class

  • Hallo,


    einige von euch kennen sicher mein Projekt "ts3admin.class". Das ist eine Funktions-Bibliothek für PHP die euch alle Funktionen bietet die ihr braucht wenn ihr über eine Website mit PHP kommunizieren wollt.
    Dadurch lassen sich z.B. ganz einfach Channel oder Server erstellen, User bearbeiten, Bilder hochladen usw.


    Projektwebsite und Download findet ihr auf: http://ts3admin.info


    Wie fängt man jetzt damit an fragt ihr euch sicher.
    Folgende Voraussetzungen sollten erfüllt werden:

    • Ein Webspace oder ein lokaler Apacheserver sollte vorhanden sein
    • PHP-Kenntnisse
    • Ein Teamspeakserver bei dem ihr die Logindaten zum Serveradmin-Zugang habt


    Ist dies alles vorhanden wäre es wahrscheinlich noch am besten wenn ihr die IP eures Webspaces in die Whitelist von Teamspeak eintragt, damit ihr nicht bei zu vielen Querys über die Website gebannt werdet (das geht sehr schnell!).


    Sind bis jetzt alle Vorkehrungen getroffen, die PHP-Klasse "ts3admin.class.php" gedownloaded und ihr seid startklar, so kann nun begonnen werden.


    Wir erzeugen also eine Test-PHP Datei, test.php und legen sie auf das Website. Im selben Verzeichnis platzieren wir nun die "ts3admin.class.php".
    Jetzt muss die test.php bearbeitet werden.


    Schritt 1: Laden der ts3admin.class.php


    PHP
    <?PHPrequire_once("ts3admin.class.php");?>


    Schritt 2: Erzeugen eines ts3admin-Objekts:


    PHP
    <?PHPrequire_once("ts3admin.class.php");$ts = new ts3admin("<IP DES TS-SERVERS>", "<QUERY-PORT (Standard 10011)>");?>


    Schritt 3: Überprüfen ob die Verbindung aufgebaut werden kann:



    PHP
    <?PHPrequire_once("ts3admin.class.php");$ts = new ts3admin("<IP DES TS-SERVERS>", "<QUERY-PORT (Standard 10011)>");$ergebnis = $ts->connect();echo $ergebnis['success'] ? 'Verbindung hergestellt' : 'Verbindung konnte nicht hergestellt werden';if(count($ts->getDebugLog()) > 0) {    foreach($ts->getDebugLog() as $logEntry) {        echo $logEntry.'<br>';    }}?>


    Das Script gibt "Verbindung hergestellt" aus wenn alles geklappt hat, wenn nicht dann gibt es "Verbindung konnte nicht hergestellt werden" und die entsprechenden Fehlermeldungen aus.
    $ergebnis['success'] spreche ich an, weil die Rückgaben von Funktionsaufrufen immer das gleiche Muster haben bei der ts3admin.class:


    Code
    Array (     ['success'] => true/false (je nach dem ob die Ausführung erfolgreich war)     ['errors'] => entweder leer wenn kein Fehler aufgetreten ist oder ein Array mit Fehlermeldungen:          Array (               [0] => 'Falscher Port'               [1] => 'PHP-Script ist schwanger und kann deshalb nicht ausgeführt werden'          )     ['data'] => Liefert als Array oder Plaintext die Informationen die angefordert wurden zurück (siehe Doku  für beispiele))



    $ts->getDebugLog() ruft den globalen Fehlerspeicher der ts3admin.class ab, somit erhalte ich alle Fehler die aufgetreten sind beim Ausführen des kompletten PHP-Scripts.


    Das errors Element der entsprechenden Funktionsrückgabe gibt nämlich nur Fehler innerhalb des Funktionsaufrufes zurück.


    Theoretisch können nun beliebig Abfragen an den Server gesendet werden, welche Funktionen es dazu gibt bitte immer aus der DOKU entnehmen.


    Hier mal ein Beispielscript um eine Liste der aktiven Clients auszugeben:



    Weitere Beispielscripts folgen diesen Thread in naher Zukunft.

    Einmal editiert, zuletzt von NoobsLost () aus folgendem Grund: Rechtschreibung - Überschrift

  • Hier ein Beispielscript wie man Clients kicken kann, dabei ist auch der serveradmin-Zugang nötig!


    Nennt die Datei im falle eines copy-paste des Scripts bitte clientkick.php um die Funktion zu gewährleisten.


  • Super Projekt!


    Ich kann es nur empfehlen. Super Dokumentation und es gibt alle Funktionen die man braucht um einen Server zu Administrieren.

    • Offizieller Beitrag

    Kann man hier eigentlich auch die Instanz-Einstellungen wie "DoS-Protection" mit "instanceEdit(array $data)" setzen/ändern?


    Oder Fragen wir anders: Sind die 'setting' gleichnamig zur offiziellen TeamSpeak 3 Manual Dokumentation?

  • Dieses Thema enthält 27 weitere Beiträge, die nur für registrierte Benutzer sichtbar sind, bitte registrieren Sie sich oder melden Sie sich an um diese lesen zu können.