Skip to main content
Antwort

API Auth postman-settings

  • March 1, 2022
  • 6 Antworten
  • 777 Aufrufe

Wiki
Communicator
Forum|alt.badge.img+10

Weiß zufällig jemand wie man Postman richtig konfiguriert, damit man “nahtlos” die PERSONIO-API testen/nutzen kann?

 

Momentan ist meine API-Sammlung sehr “rudimentär” und ich muss bei jedem Test händisch einen Token generieren und anschließend in den Header der auszuführenden Funktion kopieren.

    

 

Das müsste doch über richtige Authorization-Settings z. B. OAuth2.0 automatisierbar sein oder nicht?

 

Beste Antwort von Valentin

Hallo @Wiki,

nur um sicher zu gehen, hast du vor dem client_secret das & Zeichen belassen? Also, zum Beispiel client_id=123456&client_secret=123456

 

Liebe Grüße
Valentin

6 Antworten

Valentin
Personio Product Expert
Forum|alt.badge.img+3
  • Personio Product Expert
  • March 1, 2022

Hallo @Wiki 

vielen lieben Dank für deine Frage. Das Problem hat uns intern auch beschäftigt und wir haben mittlerweile eine Lösung hierfür.

Unter Pre-request Script fügst du das folgende Script ein und tauscht bei client_id und client_secret die Platzhalter mit deinen Daten aus.

Anschließend wählst du bei Authorization den Type Bearer Token aus und fügst {{token}} bei Token ein.

const AuthRequest = {
url: 'https://api.personio.de/v1/auth?client_id=HierClientIdEinfügen&client_secret=HierClientSecretEinfügen',
method: 'POST',
};

pm.sendRequest(AuthRequest, function (err, res) {
console.log(err ? err : res.json());
if (err === null) {
console.log('Saving the token')
var responseJson = res.json();
pm.environment.set('token', responseJson.data.token)
}
});


Hat es geklappt?

 

Liebe Grüße
Valentin


Wiki
Communicator
Forum|alt.badge.img+10
  • Autor*in
  • Communicator
  • March 4, 2022
  1. eingefügt mit client_id und client_secret
const AuthRequest = {
url: 'https://api.personio.de/v1/auth?client_id=HierClientIdEinfügen&client_secret=HierClientSecretEinfügen',
method: 'POST',
};

pm.sendRequest(AuthRequest, function (err, res) {
console.log(err ? err : res.json());
if (err === null) {
console.log('Saving the token')
var responseJson = res.json();
pm.environment.set('token', responseJson.data.token)
}
});

 

  1. Type: “Bearer Token” und Token: “{{token}}”

 

Anschließend einen get-employees hingeworfen und es funktioniert nicht :(

 

 


Valentin
Personio Product Expert
Forum|alt.badge.img+3
  • Personio Product Expert
  • Antwort
  • March 7, 2022

Hallo @Wiki,

nur um sicher zu gehen, hast du vor dem client_secret das & Zeichen belassen? Also, zum Beispiel client_id=123456&client_secret=123456

 

Liebe Grüße
Valentin


Wiki
Communicator
Forum|alt.badge.img+10
  • Autor*in
  • Communicator
  • March 7, 2022

@Valentin vielen Dank für Deine Hilfe es hing an irgendwelchen Settings! (vermutlich habe ich die Auth-Methode nicht korrekt in die GET-Abfrage eingefügt)

 

SUPER! Jetzt geht es.

 

Sowas solltet ihr vielleicht auch in der Developer-Ecke platzieren.

Dann müsste man das doch auch genauso auch in PowerAutomate/PowerApps von Microsoft einbinden können mit diesem Pre-Request-Script. Hat das schonmal wer gemacht?

 

 


Wiki
Communicator
Forum|alt.badge.img+10
  • Autor*in
  • Communicator
  • March 7, 2022

Die Lösung war:

  1. bei Postman einloggen
  2. neue Collection erstellen
  3. für die Collection folgende Einstellungen vornehmen
    a) Pre-Request-Script:


    const AuthRequest = {

    url: 'https://api.personio.de/v1/auth?
    client_id=HierClientIdEinfügen
    &
    client_secret=HierClientSecretEinfügen',
    method:
    'POST',
    };

    pm.sendRequest(AuthRequest, function (err, res) {
    console.log(err ? err : res.json());

    if (err === null) {
    console.log(
    'Saving the token')
    var responseJson = res.json();
    pm.environment.set(
    'token', responseJson.data.token)
    }
    });


    b) Authorization Type: Bearer Token
     Variable: {{token}}

 

  1. gewünschte GET/POST/PATCH/DELETE-Methoden zur Collection hinzufügen, Auth-Methode vererben von der Collection und ausprobieren.

 

mit Parameter email gefiltert, erhält man so bspw. die Antwort für nur einen Employee:


 

 

 


Wiki
Communicator
Forum|alt.badge.img+10
  • Autor*in
  • Communicator
  • September 8, 2025

@Valentin - hast du eine Idee, was ich falsch mache, wenn das Script mit v2 nicht mehr funktioniert?

das funktioniert:

const AuthRequest = {

url: 'https://api.personio.de/v1/auth?
client_id=HierClientIdEinfügen&
client_secret=HierClientSecretEinfügen',
method: 'POST',
};

pm.sendRequest(AuthRequest, function (err, res) {
console.log(err ? err : res.json());
if (err === null) {
console.log('Saving the token')
var responseJson = res.json();
pm.environment.set('token', responseJson.data.token)
}
});

 

eigentlich müsste sich doch nur die URL ändern oder nicht? - das funktioniert nicht mehr:

const AuthRequest = {

url: 'https://api.personio.de/v2/auth/token?
client_id=HierClientIdEinfügen&
client_secret=HierClientSecretEinfügen',
method: 'POST',
};

pm.sendRequest(AuthRequest, function (err, res) {
console.log(err ? err : res.json());
if (err === null) {
console.log('Saving the token')
var responseJson = res.json();
pm.environment.set('token', responseJson.data.token)
}
});

Obtain Access Token


Fehlermeldung:

{
"success": false,
"error": {
"message": "Provided authorization is not valid",
"code": 401
}
}

 

Viele Grüße, Wiki