Created
December 22, 2023 10:26
-
-
Save JKamsker/0c9127f174a4c635391083cc69063bc0 to your computer and use it in GitHub Desktop.
Get Teamviewer devices
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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(); | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Can be used to resolve device names by id (Id can be found in Computer\HKEY_LOCAL_MACHINE\SOFTWARE\TeamViewer\ClientID)