Ich muss Daten per Api aus der Software Personio. The People Operating System. ziehen.
Dazu habe ich einen Test-Account bei Personio.de erstellt.
Mein Problem ist, dass ich mit dieser Materie noch gar nichts am Hut habe...
Ich habe dazu folgenden Code in einer Consolenanwendung, der mit den Fehler "401 (Unauthorized)" liefert.
Wie gesagt, ich habe hierzu leider überhaupt keine Ahnung und bin deshalb für jede Hilfe dankbar.
Übrigens, die Variablen client_id & client_secret sind auch die richtigen für meinen Test-Account bei Personio.de. Zudem habe ich einen Screenshot von Personio angeheftet und es gibt auch eine Doku (https://developer.personio.de/reference), die mir nichts bringt.
class Program
{
static void Main(string[] args)
{
Console.WriteLine("*** START ***");
Console.WriteLine("");
GetPersonen();
Console.WriteLine("");
Console.WriteLine("*** END ***");
Console.ReadLine();
}
private const string URL = "https://api.personio.de/v1/company/employees?limit=300&offset=0";
private static string client_id = "xxxx";
private static string client_secret = "xxxxxxxx";
public static async void GetPersonen()
{
using (var client = new HttpClient())
{
client.BaseAddress = new Uri(URL);
client.DefaultRequestHeaders.Accept.Clear();
client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
client.DefaultRequestHeaders.Add("client_id", client_id);
client.DefaultRequestHeaders.Add("client_secret", client_secret);
var responseTask = client.GetAsync("employees");
responseTask.Wait();
var result = responseTask.Result;
if (result.IsSuccessStatusCode)
{
var readTask = result.Content.ReadAsAsync<Person[]>();
readTask.Wait();
var personen = readTask.Result;
foreach (var person in personen)
{
Console.WriteLine(person.Nachname);
}
}
else
{
Console.WriteLine("{0} ({1})", (int)result.StatusCode, result.ReasonPhrase);
}
}
}
}
public class Person
{
public string Vorname
{
get;
set;
}
public string Nachname
{
get;
set;
}
}