Изучая возможность установить VPN-соединения между двумя компьютерами, находящимися за разными NAT'ами с постоянно меняющимися IP-адресами, возникла идея реализовать это с помощью TeamViewer'а, для чего почитал его API. Нужной информации к сожалению там не оказалось, зато оказались другие интересные возможности, например функции для создания вебинаров или персональных сессий, когда задав некоторые параметры мы получаем ссылки на два приложения: клиентское (кому нужна помощь) и техническое (кто будет помогать), загрузив и запустив которые нет необходимости вводить какие-либо ID, соединение создаётся автоматически. Информации по API TeamViewer'а в сети близко к нулю, а потому думаю для многих это будет интересная тема.
В мануале приводится следующее описание API:
The TeamViewer API is a REST API which uses the already existing HTTP methods to create (POST), read (GET), change (PUT) or delete (DELETE) single items or a collection of items. The following table shows the general use cases for these HTTP methods.
GET POST PUT DELETE Collection retrieve list of items in this col-lection create new item in this collection - - Single item retrieve item data - changes the item deletes this item GET POST PUT DELETE Collection Collection retrieve list of items in this col-lection create new item in this collection - - Single item Single item retrieve item data - changes the item deletes this item
The basic URI scheme for all API functions is: https://host/path/to/re-sources[/id][/verb][?param1=value1]
The TeamViewer API can be found at https://webapi.teamviewer.com/api/v1
Parameters in the URI are only allowed for GET and DELETE. Generally there should be no need for any pa-rameters for DELETE, though. POST and PUT need to have the parameters in the body formatted as JSON or XML.
То есть, отправляем HTTP-запрос с параметрами в url или в формате json, в ответ получаем код ошибки или результат выполнения запроса в формате json. Авторизация производится через OAuth или с помощью токена, который можно получить в консоли управления на сайте.
Бесплатным пользователям доступны следующие функции API:
- управление учётной записью
- управление сеансами
- управление группами
- управление конференциями
- управление устройствами
- управление контактами
Для примера работы с API посмотрим два примера: работа с устройствами и работа с конференциями.