Skip to content

Instantly share code, notes, and snippets.

@JKamsker
Created December 22, 2023 10:26
Show Gist options
  • Save JKamsker/0c9127f174a4c635391083cc69063bc0 to your computer and use it in GitHub Desktop.
Save JKamsker/0c9127f174a4c635391083cc69063bc0 to your computer and use it in GitHub Desktop.
Get Teamviewer devices
var dev = new TeamViewerDevice()
{
ApiToken = "APIKEY",
};
await dev.GetTeamViewerDevice();
Debugger.Break();
public class TeamViewerDevice
{
public string ApiToken { get; set; }
public string Id { get; set; }
public int? TeamViewerId { get; set; }
public string FilterOnlineState { get; set; }
public object Group { get; set; }
private static readonly HttpClient client = new HttpClient();
public async Task<string> GetTeamViewerDevice()
{
var uri = "https://webapi.teamviewer.com/api/v1/devices";
if (!string.IsNullOrEmpty(Id))
{
uri += "/" + Id;
}
else
{
var parameters = new Dictionary<string, string>();
if (TeamViewerId.HasValue)
{
parameters.Add("remotecontrol_id", "r" + TeamViewerId.Value);
}
if (!string.IsNullOrEmpty(FilterOnlineState))
{
parameters.Add("online_state", FilterOnlineState.ToLower());
}
if (Group != null)
{
var groupId = ResolveTeamViewerGroupId(Group);
parameters.Add("groupid", groupId);
}
uri += "?" + await new FormUrlEncodedContent(parameters).ReadAsStringAsync();
}
// client.DefaultRequestHeaders.Add("Authorization", "Bearer " + ApiToken);
client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", ApiToken);
var response = await client.GetAsync(uri);
if (response.IsSuccessStatusCode)
{
var responseContent = await response.Content.ReadAsStringAsync();
return ConvertToTeamViewerDevice(responseContent);
}
else
{
throw new Exception($"Failed to get device: {response.StatusCode}");
}
}
private string ResolveTeamViewerGroupId(object group)
{
// Implement this method
throw new NotImplementedException();
}
private string ConvertToTeamViewerDevice(string responseContent)
{
// Implement this method
throw new NotImplementedException();
}
}
@JKamsker
Copy link
Author

Can be used to resolve device names by id (Id can be found in Computer\HKEY_LOCAL_MACHINE\SOFTWARE\TeamViewer\ClientID)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment