TeamViewer (Classic)では、データにアクセスして、TeamViewer アカウントのさまざまな側面をコントロールできるウェブベースのAPIを提供しています。
APIを利用することで、TeamViewerの機能を自社環境に統合するアプリケーションを開発したり、誰もが使用できるアプリケーションを開発したりすることができます。
概要
例えばデバイスを含むグループを削除する必要があると仮定します。
グループを1つずつ削除しなければなりません。デバイスが数台の場合は問題ありません。ですが、何百台もデバイスが存在する場合は手間がかかります。
このような場合には、APIを活用して、グループが含むデバイスとグループを、自動的に削除するスクリプトを作成しましょう。APIトークンとグループ名を指定するだけで、これを実行することができます。以下では、その方法を説明します。
この方法では、グループ管理およびデバイス管理API関数を使用します。ソリューションの実装には、Windows PowerShellが使用されていました。ユーザートークンを使用すると、コードは、デバイスとグループをmanagement consoleから取得して表示します。これによって、削除するグループを選択することができます。選択すると、結果が整然とコンソールに表示されます。
開始方法
TeamViewerアカウントを持っていることを確認してください。アカウントがない場合、http://login.teamviewer.comで無料で作成することができます。
スクリプトを作成するには、TeamViewerアカウントでTeamViewer (Classic) Management Consoleにログインして、スクリプトトークンを作成します。
コンソールで、ウェブサイト右上のプロファイル設定を開きます。[アプリケーション] を選択して、[スクリプトトークンの作成] をクリックします。フォームに記入してトークンを定義します。
• スクリプト名を入力します。
• スクリプトトークンの説明を入力します。
• スクリプトトークンの権限を選択します。
• グループ管理 – グループを表示、作成、削除、編集、共有します。
• コンピュータ & パートナー – エントリを表示、追加、編集、削除します。
• スクリプトトークンを保存します。
これでトークンが安全な場所に保存されました。スクリプトが実行されると、これが要求されます。
コード
$token = Read-Host -Prompt "Paste your account token code here"
$bearer = "Bearer",$token
$header = New-Object "System.Collections.Generic.Dictionary[[String],[String]]"
$header.Add("authorization", $bearer)
$webrequest = Invoke-RestMethod -Uri "https://webapi.teamviewer.com/api/v1/groups/" -Method Get -Headers $header
$machine = Invoke-RestMethod -Uri "Https://webapi.teamviewer.com/api/v1/devices/" -Method Get -Headers $header
$i=1
$grpArr = @()
ForEach($grp in $webrequest.groups)
{
Write-Host $i ")" $grp.name " - " $grp.id
$grpArr += $grp.id;
ForEach($dev in $machine.devices)
{
If($dev.groupid -eq $grp.id)
{
Write-Host " " $dev.alias
}
}
$i += 1
}
$ig = Read-Host -Prompt "Select the group you will like to remove"
ForEach ($dgrp in $machine.devices)
{
if($dgrp.groupid -eq $grpArr[$ig - 1])
{
Write-Host "Delete device: " $dgrp.alias
$item = $dgrp.device_id
$delete = Invoke-WebRequest -Uri "Https://webapi.teamviewer.com/api/v1/devices/$item" -Method Delete -Headers $header
}
}
Write-Host "Delete group id: " $grpArr[$ig - 1]
$gid = $grpArr[$ig - 1]
$remove = Invoke-WebRequest -Uri "Https://webapi.teamviewer.com/api/v1/groups/$gid" -Method Delete -Headers $header
スクリプトの実行方法
スクリプトコードを任意のテキストエディタにコピーして (メモ帳など)、.ps1ファイルとして保存します。(test.ps1)
動画
スクリプトの動作方法の詳細については、次の動画をご覧ください。
最後に
TeamViewer (Classic) APIは、マネージメントコンソールを最大限活用する必要がある時は貴重なツールです。これをプログラミング言語と創造的に組み合わせることで、お望みの結果を日々の作業で簡単に実現することができます。ぜひご利用ください!