Contenidos
Postbote ist ein wertvolles Werkzeug für die Arbeit mit APIs, insbesondere beim Testen und bei Ad-hoc-Anforderungen außerhalb einer automatisierten Produktionslösung. In Bezug darauf, wo ein Power BI-Entwickler Postman nützlich finden könnte, liegt es irgendwo dazwischen «Probieren Sie es aus» aus der Dokumentation Funktionalität und eine produktionsfähigere Lösung, die Tools wie Azure DevOps, Logic Apps / Power Automate, einen benutzerdefinierten Power BI-Connector und mehr enthält.
Die Ideen in dieser Publikation erweitern a Originalbeitrag von Carl de Souza. Carl zeigt, wie man ein OAuth2-Zugriffstoken erhält, aber er tut es mit fest codierten Werten. Zusätzliche API-Anforderungen verwenden das Token aus der ursprünglichen Antwort. Sie stellen dieses Token jedoch auch manuell für nachfolgende API-Aufrufe bereit.
Bei den folgenden Schritten wird davon ausgegangen, dass Sie bereits mit den Grundlagen von Postman und Postman vertraut sind Power BI API. Melden Sie sich für eine Power BI Azure Active Directory-App Wenn Sie noch keinen haben, sollten Sie auch den entsprechenden Bereich für Ihre gewünschten Aufgaben definiert haben.
Variablen hinzufügen
Erweiterung der zu verwendenden Postman-Technik Variablen Anstelle von fest codierten Werten wird der Aufwand automatischer und bequemer. Insbesondere wenn das Zugriffstoken zur Wiederverwendung in anderen API-Anforderungen an eine Variable übergeben wird, wird jedes Mal, wenn eine neue Anforderung nach Ablauf eines vorherigen Tokens gestellt wird, ein manuelles Kopieren und Einfügen »[Token]” entfernt.
Letztendlich besteht das Ziel darin, ein Zugriffstoken für jede Power BI-REST-API-Anforderung bereitzustellen, ohne das Autorisierungstoken manuell in die Anforderung einfügen zu müssen. Um dies zu erreichen, ist eine Sitzungsvariable (aufgerufen) erforderlich temp_access_token in diesem Fall wie im Screenshot gezeigt).

Um dieses Ergebnis zu erhalten, müssen Sie zunächst eine neue Umgebung in Postman erstellen. Fügen Sie dann fünf Variablen hinzu, um die fest codierten Werte in Carls ursprünglichem Beitrag zu ersetzen. Ich habe Umgebungsvariablen verwendet, damit ich sie für mehrere Sammlungen verwenden kann, aber es würde auch funktionieren, den Bereich auf Sammlungsvariablen zu beschränken.

Im Anfragetext werden vier Variablen verwendet, um das Zugriffstoken von https://login.microsoftonline.com/common/oauth2/token abzurufen. Dies sind nur lokale Sitzungsvariablen (angeben Aktueller Wert aber tu es nein Hinzufügen vertraulicher Daten zu Ursprünglicher Wert).
1) Nutzername - Organisatorischer Power BI-Benutzer
2) Passwort - Power BI-Organisationskennwort
3) Kundenidentifikation - Ihre ID Azure Active Directory-Anwendung
4) client_secret - Geheimnis Ihrer Azure Active Directory-Anwendung
HINWEIS: Postman hat derzeit keine Möglichkeit, Variablenwerte zu schützen, auszublenden oder zu maskieren. Nachdem Sie mit Microsoft-Produkten wie Azure Key Vault gearbeitet haben, fühlen Sie sich so verwundbar, wenn Sie nur ein Kennwort in einer Variablen speichern. Für die Verwendung mit dem Grant-Typ OAuth = Kennwort sind Sitzungsvariablen jedoch ein Schritt weiter als die Codierung im Hauptteil einer Anforderung. Dies gilt insbesondere dann, wenn Sie Postman für Teams verwenden und Ihr Arbeitsbereich synchronisiert ist. Behalten Sie einfach diese Daten in Aktueller WertZumindest bleibt es lokal.

Die fünfte Variable, temp_access_tokenwird nicht wie die anderen vier manuell angegeben. Stattdessen verwenden Sie Code im Postboten Tests Registerkarte, um das Zugriffstoken in diese Variable zu schreiben. Tests Dies ist ein Bereich zum Platzieren von JavaScript-Code, der ausgeführt wird, nachdem die Anforderung aufgetreten ist.
Holen Sie sich einen Token
Die anfängliche API-Anforderung erhält das Zugriffstoken, das in nachfolgenden Aufrufen verwendet wird.
Fügen Sie eine neue hinzu Senden Anwendung https://login.microsoftonline.com/common/oauth2/token
zum Überschriften, hinzufügen:
Schlüssel = Inhaltstyp
Wert = application / x-www-form-urlencoded

zum KörperFügen Sie Folgendes hinzu, einschließlich der Variablenwerte in {{}}.
grant_type = password & username = {{username}} & password = {{password}} & client_id = {{client_id}} & client_secret = {{client_secret}} & resource = https: //analysis.windows.net/powerbi/ api

Was folgt, ist der nützlichste Teil. Der Code hier erspart Ihnen das manuelle Kopieren und Einfügen des Inhaber-Tokens in zusätzliche Anforderungen.
Im Tests, hinzufügen:
var token; Versuchen {var response = JSON.parse (responseBody);
token = response.access_token;
pm.environment.set ("temp_access_token", Token);
} catch (err) {console.warn (err.message); }}
Der in verwendete Code Tests analysiert die JSON-Antwort und weist die zu Zugangstoken von Microsoft an die temp_access_token Variable.

Eine erfolgreiche Anfrage zeigt das access_token und andere Daten an.

Außerdem wird das Zugriffstoken in die entsprechende Variable geschrieben.
Verwenden Sie das Token in nachfolgenden Anforderungen
Zusätzliche Anforderungen hängen davon ab, was Sie mit der Power BI-API tun möchten. Der allgemeine Schritt besteht jedoch darin, den Autorisierungsheader mit dem als Variable gespeicherten Token zu übergeben.
zum Überschriften, hinzufügen:
Schlüssel = Autorisierungswert = Inhaber {{temp_access_token}}

Mit dieser Einstellung kann ich beispielsweise alle Arbeitsbereichsdaten in meinem Mandanten mithilfe von erweitern Management- / Gruppenendpunkt. Ich brauche nur die dynamische Autorisierungsmethode, URL und Header. Kein manuelles Kopieren / Einfügen erforderlich.

Sie können diese Methode sogar um zusätzliche Variablen für relative Endpunkt-URLs und mehr erweitern!
Wenn Sie Fragen haben, kommentieren Sie unten und lassen Sie mich wissen, ob Sie Postman verwenden und diese Methode hilfreich finden.
[embedded] https://www.youtube.com/playlist?list=PLyWe5-Lx84g1JrDY6Zh_dfV2oO-Cy3frl&layout=gallery[/embedyt] Zahlungslinks
Als Amazon-Mitarbeiter verdiene ich mit qualifizierten Einkäufen.