TS3 Framework - Groep wijzigen

Status
Niet open voor verdere reacties.

Maximvdw

Gebruiker
Lid geworden
7 feb 2009
Berichten
921
Beste forumleden,

Ik was een klein scriptje aan het schrijven om de groepen van de gebruikers van mijn site te syncen
met mijn teamspeak. Nu ik heb een klein probleem met het TS3 framework.

Graag zou ik de groep van een offline client (ts3) willen verkrijgen.

PHP:
<?php
    /** ---------------------------------------- *
     *  MVdW Software - Teamspeak Xenforo Sync
     *  Author: Maxim Van de Wynckel (Maximvdw)
     *  Date: 02-02-2014
     *  ---------------------------------------- */
    
    error_reporting(E_ALL);
    ini_set('display_errors', '1');
    
    require_once("libraries/TeamSpeak3/TeamSpeak3.php");
    $ts3_VirtualServer = TeamSpeak3::factory("serverquery://serveradmin:*******@**********:10011/?server_port=9987");
    $ts3_Client = $ts3_VirtualServer->clientGetByUid("ZUsqN*********7oLOF07k=");
    $groups = $ts3_Client->memberOf();
    $ts3_Client->addServerGroup(23);
    foreach ($groups as &$value){
        if ($value->getId() != 8)
            $ts3_Client->remServerGroup($value->getId());
    }
?>

Bovenstaande code werkt enkel bij een online gebruiker. Indien de gebruiker offline is krijg ik volgende error:
Fatal error: Uncaught exception 'TeamSpeak3_Adapter_ServerQuery_Exception' with message 'invalid clientID' in C:\xampp\htdocs\libraries\TeamSpeak3\Node\Server.php:780 Stack trace: #0 C:\xampp\htdocs\groupsync.php(16): TeamSpeak3_Node_Server->clientGetByUid('ZUsq*********FA...') #1 {main} thrown in C:\xampp\htdocs\libraries\TeamSpeak3\Node\Server.php on line 780

Bron: http://docs.planetteamspeak.com/ts3/php/framework/class_team_speak3___node___client.html
http://forum.teamspeak.com/showthread.php/54132-API-TS3-PHP-Framework

Met Vriendelijke Groeten,
Maxim Van de Wynckel
 
Laatst bewerkt:
Hangt er vanaf wat je op kunt vragen.

Je krijgt nu een exception welke je niet afvangt, als deze exception gelijk is aan een offline gebruiker dan zou iets in de afhandeling kunnen doen.

Dus een try-catch uitvoeren op de functie TeamSpeak3_Node_Server->clientGetByUid() zal al een begin zijn :)
 
jah had die exception even opengelaten om wat te testen.
Het probleem is dat ik een manier zoek om een offline gebruiker te verkrijgen. Enige methodes die voor client zijn is via de naam, id of uid.
Ze werken allemaal enkel indien de gebruiker online is op teamspeak.

Denk wel dat er een mogelijkheid moet bestaan aangezien de virtual server van ts3 wel toelaat om querys uit te voeren op offline gebruikers. Mijn vraag is dus hoe ik dit kan
via het ts3 framework.

Bedankt voor je reactie ;)

Maxim
 
De kans dat je daar direct antwoord op krijgt lijkt mij heel klein, iemand gaat niet voor zijn lol de documentatie van TS3 doornemen om jou te helpen.

Als ik het zo bekijk dat zou ik gokken dat je deze functie moet hebben: TeamSpeak3_Node_Server::clientListDb($offset = null, $limit = null)
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan