1

一日中検索していますが、ユーザーから Teamspeak 名を取得しただけではクライアント ID を取得する方法が見つかりません。

私の現在のコード(ID IDでのみ動作します):

function tsverification($verification) {
        require_once("../ts3phpframework-master/libraries/TeamSpeak3/TeamSpeak3.php");
        $ts3_VirtualServer = TeamSpeak3::factory("serverquery://serveradmin:XXXXXX@XXX.XXX.XXX.XX:10011/?server_port=9987&nickname=Poker");
        $client = $ts3_VirtualServer->clientGetByUid("$verification");
        $ts3_VirtualServer->clientPoke($client, "Poke Message");
}
4

3 に答える 3

0

私は自分で解決策を見つけました:

function tsverification($verification) {
    require_once("../ts3phpframework-master/libraries/TeamSpeak3/TeamSpeak3.php");
    $ts3_VirtualServer = TeamSpeak3::factory("serverquery://serveradmin:XXXXXX@XXX.XXX.XXX.XX:10011/?server_port=9987&nickname=Poker");

    if (substr($verification, -1, 1) == "=" && strlen($verification) == 28) { // Via UID
        $client = $ts3_VirtualServer->clientGetByUid("$verification");
        $ts3_VirtualServer->clientPoke($client, "Poker poked you.");
    } else { // Via Teamspeak Name
        $ts3_VirtualServer->clientGetByName("$verification")->poke("Poker poked you."); 
    }
}
于 2016-08-29T19:42:28.950 に答える
0

私はこの方法を試しましたが、うまくいきます

<?php
    $msg = $_POST['msg'];
    $client = $_POST['client'];

    require_once("TeamSpeak3/libraries/TeamSpeak3/TeamSpeak3.php");

    $ts3_VirtualServer = TeamSpeak3::factory("serverquery://serveradmin:PASSWORD@IPADDRESS:PORT/?server_port=9987&nickname=USG-Staff");

    $ts3_VirtualServer->clientGetByName("$client")->poke("$msg");
?>
于 2016-12-24T15:23:59.660 に答える
0

一意の ID を返す getUniqueId() 関数を使用できます。公式ドキュメントを参照してください: https://docs.planetteamspeak.com/ts3/php/framework/class_team_speak3___node___client.html#a55de8c3f5abcf4794b72a1bc464c2cb4

function getUserID($sUsername){
    TeamSpeak3::init();
    $oTeamSpeak = TeamSpeak3::factory('serverquery://' . Config::$sQueryName . ':' . Config::$sQueryPasswd . '@' . Config::$sServerIP . ':' . Config::$sQueryPort . '/?server_port=' . Config::$sServerPort . '');

    $oClient = $oTeamSpeak->clientGetByName($sUsername);

    return $oClient->getUniqueId();
}
于 2016-10-02T09:53:08.830 に答える