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

try
{
    string accessToken = "xxxxxxxxxxxxxxxxxxxx";
    string Version = "v1";
    string tvApiUrl = "https://webapi.teamviewer.com";
    string address = tvApiUrl + "/api/" + Version + "/various commands from API";
    HttpWebRequest request = WebRequest.Create(address) as HttpWebRequest;
    request.Headers.Set("Authorization", "Bearer " + accessToken);
    request.Method = "GET";
    WebResponse response = request.GetResponse();
    return response;
}
catch (Exception ex) 
{
    MessageBox.Show("Failed to get request with error: " + ex.Message);
    return null;
}

Это не сработает, потому что я не нашел ничего, связанного с удаленным списком компьютеров, которые у меня есть в Teamviewer. Мне нужен способ проверить, программно ли подключен компьютер в моем списке Teamviewer. заранее спасибо

0
Chris 12 Авг 2014 в 18:36
1
Разве это не было бы огромным недостатком безопасности, если бы оно не предоставлялось через API телевизора?
 – 
Thierry
12 Авг 2014 в 20:01
Почему это может быть недостатком безопасности, если вы можете подключиться к этому конкретному идентификатору Teamviewer, когда все, что вам нужно, это просто пинговать его?
 – 
Chris
12 Авг 2014 в 20:07
Я также пробовал использовать это: ./teamviewer.exe -I -P -m , но это будет сложно, когда у вас есть 100 идентификаторов для проверки! если бы был такой режим, как «Пинг», это было бы идеально.
 – 
Chris
13 Авг 2014 в 14:50

1 ответ

Лучший ответ

Этого можно добиться с помощью TeamViewer API.

Ознакомьтесь с документацией в разделе «3.10 Устройства»:

GET / api / v1 / devices (список всех устройств из списка компьютеров и контактов)

  • Параметры

    • online_state (необязательно) - возвращать только устройства с данным online_state.
    • groupid (необязательно) - возвращает только контакты, которые находятся в указанной группе.
  • Возвращаемые значения

    • device_id - уникальный идентификатор для данной записи в списке компьютеров и контактов. Ценности всегда с префиксом D.
    • remotecontrol_id - уникальный идентификатор этого устройства, который может использоваться для запуска удаленного управления. сеанс.
    • groupid - идентификатор группы, членом которой является данное устройство.
    • alias - псевдоним, который текущий пользователь присвоил этому устройству.
    • описание - описание, которое текущий пользователь ввел для этого устройства.
    • online_state - текущее онлайн-состояние устройства. Возможные значения: онлайн, офлайн.
  • Аутентификация

    • Маркер доступа пользователя. Область: ContactList.Read.
  • Описание
    • Возвращает список устройств в списке компьютеров и контактов пользователя.
  • Примере

Запрос

GET /api/v1/devices

Отклик

HTTP/1.1 200 OK  
   Content-Type: application/json 
 { "devices": [  
      {  
          "remotecontrol_id": "r123456789",  
          "device_id": "d123456789",  
          "alias": "PC",  
          "groupid": "g12345678",  
          "online_state": "Online"  
      },  
      {  
          "remotecontrol_id": "r123456780",  
          "device_id": "d345667567",  
          "alias": "Laptop",  
          "groupid": "g12345678",  
          "online_state": "Offline" 
      },  
      {  
          "remotecontrol_id": "r345678890",  
          "device_id": "d444443226",  
          "alias": "Office",  
          "groupid": "g12345678",  
          "online_state": "Offline" 
      }  
   ] 
}
1
Baris Akar 6 Фев 2015 в 15:17
Спасибо за ответ и извините за мой поздний ответ. Я решил не использовать API teamviewers, поэтому написал кое-что, что делает эту работу.
 – 
Chris
20 Авг 2015 в 09:06
Это не код С #, как код, опубликованный в исходном вопросе.
 – 
luka
27 Сен 2021 в 15:36