Тимспик 3 Фреймворк

Я пытаюсь получить идентификатор базы данных всех клиентов, но мне не удалось использовать foreach и т. д., поскольку он всегда возвращает значение как NULL. Мне нужно получить foreach с идентификаторами базы данных и поместить его в массив

$userchannel = $clients->cid->clientList["client_database_id"];

person MAH3R    schedule 07.01.2017    source источник


Ответы (2)


После некоторой возни мне удалось заставить это работать, пожалуйста, проверьте. Если у вас есть вопросы по коду. Не стесняйтесь спрашивать их.

Что я сделал в основном, так это модифицировал существующий код из примеров, показанных на сайте фреймворка teampeak php. Я использовал список пользователей Android для большей части кода. Оттуда он просто пытается и отлаживает;)

этот код будет печатать идентификатор базы данных пользователя вместе с именем пользователя. (Конечно, с этого момента вы можете делать с ним все, что хотите.)

Также, возможно, взгляните на документацию по API для php framework. В нем есть много полезных советов и приемов по кодированию.

https://docs.planetteamspeak.com/ts3/php/framework/

изменить (07-01-17) Кое-что, что я также заметил, убедитесь, что у пользователя запроса достаточно прав, для простоты я сделал запрос администратора моего сервера (предоставляет доступ ко всем параметрам, имейте в виду, что это может будьте небезопасны на активном сайте!)

<?php
// load framework files
require_once("libraries/TeamSpeak3/TeamSpeak3.php");

try {
  // connect to local server, authenticate and spawn an object for the virtual server on port 9988
  $ts3_ServerInstance = TeamSpeak3::factory("serverquery://###:##@####:##/?server_port=9987");
  $selected_sid = $ts3_ServerInstance->serverList();
  $ts3_VirtualServer = $ts3_ServerInstance->serverGetById($selected_sid);

  /* walk through list of clients */
  echo "<table class=\"list\">\n";
  echo "<tr>\n" .
       "  <th>DB id</th>\n" .
       "  <th>Nickname</th>\n" .
       "</tr>\n";
  foreach($ts3_VirtualServer->clientList() as $client) {
    echo "<tr>\n" .
         "  <td>" . $client['client_database_id'] . "</td>" .
         "  <td>" . htmlspecialchars($client) . "</td>" .
         "</tr>\n";
  }
  echo "</table>\n";
}
catch(Exception $e) {
  /* catch exceptions and display error message if anything went wrong */
  echo "<span class='error'><b>Error " . $e->getCode() . ":</b> " . $e->getMessage() . "</span>\n";
}
person BjornvanSchie    schedule 07.01.2017
comment
Я действительно хотел загрузить список клиентов в определенном канале - person MAH3R; 08.01.2017
comment
Я посмотрю, смогу ли я сделать это для вас завтра. Я думаю, вы хотите выбрать конкретную Chanel на основе идентификатора? - person BjornvanSchie; 08.01.2017
comment
Действительно, я пробовал несколько функций, но они, похоже, не работают. - person MAH3R; 08.01.2017

Мне удалось это исправить.

$ts3_VirtualServer->channelGetById(152) // 152 is the channel ID
person MAH3R    schedule 08.01.2017