OAuth-Schnellanleitung
Bevor Sie loslegen
Bevor Sie OAuth mit HubSpot verwenden können, müssen Sie über Folgendes verfügen:
- Ein Entwickler-Account
- Eine App, die mit Ihrem Entwickler-Account verknüpft ist
- Ein HubSpot-Account*, um Ihre App zu installieren (Sie können einen vorhandenen Account verwenden oder einen Test-Account erstellen)
*Sie müssen ein Super-Admin sein, um eine App in einem HubSpot-Account zu installieren
So funktioniert das Ganze
HubSpot unterstützt den OAuth 2.0 Grant-Type „Autorisierungscode“, der in vier grundlegende Schritten unterteilt werden kann:
- Ihre App öffnet ein Browser-Fenster, um den Benutzer an den HubSpot OAuth 2.0-Server weiterzuleiten.
- Der Benutzer prüft die angeforderten Berechtigungen und gewährt der App Zugriff.
- Der Benutzer wird mit einem Autorisierungscode in der Abfragezeichenfolge zurück zur App geleitet.
- Die App sendet eine Anfrage an den OAuth 2.0-Server, um den Autorisierungscode gegen ein Zugriffstoken auszutauschen.
In diesem Leitfaden
- Schnellanleitungs-App: Eine Node.js-Demo-App, die sich beim OAuth 2.0-Server von HubSpot authentifiziert
- Abrufen von OAuth 2.0-Token So autorisieren Sie Ihre App bei Benutzern
- Verwenden von OAuth 2.0-Token: So erstellen Sie Abfragen mit einem Token
- Aktualisieren von OAuth 2.0-Token: So verwenden Sie das von HubSpot bereitgestellte Aktualisierungstoken
Hinweis: Alle Code-Beispiele in diesem Leitfaden sind in JavaScript (Node.js) geschrieben
Schnellanleitungs-App
Wenn Sie zum ersten Mal die OAuth-Authentifizierung mit den APIs von HubSpot verwenden, sollten Sie sich unbedingt vorher mit der in Node.js geschriebenen Node.js OAuth 2.0 Quickstart-App beschäftigen. Diese Beispiel-App ermöglicht einen schnellen Einstieg in die Verwendung von OAuth 2.0, da alle unten in Abrufen von OAuth 2.0-Token beschriebenen Schritte erläutert werden.
Abrufen von OAuth 2.0-Token
Schritt 1: Autorisierungs-URL erstellen und den Benutzer zum OAuth 2.0-Server von HubSpot weiterleiten
Wenn Sie einen Benutzer an den OAuth 2.0-Server von HubSpot verweisen, wird im ersten Schritt die Autorisierungs-URL erstellt. Dadurch wird Ihre App identifiziert und es werden die Ressourcen (Bereiche) definiert, auf die diese im Namen des Benutzers Zugriff anfordert. Die Abfrageparameter, die Sie als Teil einer Autorisierungs-URL übergeben können, werden unten angezeigt. Weitere Informationen zu diesem Schritt finden Sie in der Referenzdokumentation.
Parameter | Erforderlich? | Beschreibung | Beispiel |
---|---|---|---|
client_id |
Ja | Die Client-ID identifiziert Ihre App. Sie finden sie auf der Einstellungsseite Ihrer App. |
|
scope |
Ja | Die Bereiche, die Ihre Anwendung anfordert, getrennt durch URL-codierte Leerzeichen. |
|
redirect_uri |
Ja | Die URL, zu der der Benutzer weitergeleitet wird, nachdem er Ihre App für die angeforderten Bereiche autorisiert hat. Bei Produktionsanwendungen ist https erforderlich. |
|
optional_scope |
Nein | Die Bereiche, die für Ihre App optional sind und verworfen werden, wenn das ausgewählte HubSpot-Portal keinen Zugriff auf diese Produkte hat |
|
state |
Nein | Ein eindeutiger Zeichenfolgenwert, der zur Aufrechterhaltung des Status des Benutzers verwendet werden kann, wenn er zurück zu Ihrer App weitergeleitet wird. |
|
Nachdem Sie Ihre URL erstellt haben, starten Sie den OAuth 2.0-Prozess, indem Sie den Benutzer dorthin verweisen.
Beispiele
Mithilfe einer serverseitigen Weiterleitung:
Mithilfe eines HTML-Links:
Codierung eines zusätzlichen Status der Weiterleitung eines Benutzers
Einige Apps müssen den Benutzer möglicherweise an andere Orte weiterleiten. Beispielsweise kann eine App Benutzer auf verschiedene Subdomains ihrer Integration weiterleiten (z. B. benutzerA.integration.com und benutzerB.integration.com). Verwenden Sie dazu den state
-Parameter, um weitere Informationen zum Benutzerstatus zu codieren:
1. Generieren und speichern Sie einen Nonce-Wert für den state-Parameter.
2. Speichern Sie den Status des Benutzers in einem lokalen Datenspeicher mit dem Nonce-Wert als dessen Schlüssel.
3. Schließen Sie den Nonce-Wert als state-Parameter in der Autorisierungs-URL ein.
4. Wenn sich der Benutzer authentifiziert und zu Ihrer Weiterleitungs-URL weitergeleitet wird, validieren Sie den state-Parameter und verwenden Sie ihn als Schlüssel, um den gespeicherten Benutzerstatus abzurufen.
5. Leiten Sie den Benutzer von dort aus nach Bedarf weiter (z. B. durch erneutes Weiterleiten zu einer benutzerspezifischen URL).
Schritt 2: HubSpot fordert Benutzer zur Einwilligung auf
HubSpot zeigt dem Benutzer ein Einwilligungsfenster an, in dem der Name Ihrer App und eine kurze Beschreibung der HubSpot API-Dienste angezeigt werden, für die eine Zugriffsberechtigung angefordert wird. Der Benutzer kann dann Zugriff auf Ihre App gewähren.
Hinweis: Der Benutzer, der die App installiert, muss Zugriff auf alle angeforderten Bereiche haben. Wenn er nicht die erforderlichen Zugriffsrechte besitzt, schlägt die Installation fehl und er wird zu einer Fehlerseite weitergeleitet. Wenn ein Benutzer diese Seite für einen Berechtigungsfehler sieht, muss er einen Super-Admin bitten, die App zu installieren.
Ihre Anwendung funktioniert in dieser Phase nicht. Sobald der Zugriff gewährt ist, sendet der HubSpot OAuth 2.0-Server eine Anfrage an den in der Autorisierung der Autorisierungs-URL definierten Calback-URI.
Schritt 3: OAuth 2.0-Serverantwort verarbeiten
Wenn der Benutzer die Aufforderung zur Einwilligung von Schritt 2 abgeschlossen hat, sendet der OAuth 2.0-Server eine GET
-Anfrage an den in Ihrer Authentifizierungs-URL angegebenen Weiterleitungs-URI. Wenn keine Fehler auftreten und der Benutzer die Zugriffsanfrage akzeptiert, wird die Anfrage mit einem angehängten code
-Abfrageparameter an den Weiterleitungs-URI zurückgegeben. Wenn der Benutzer keinen Zugriff gewährt, wird keine Anfrage gesendet.
Beispiel:
Schritt 4: Autorisierungscode für Token austauschen
Nachdem Ihre App einen Autorisierungscode aus dem OAuth 2.0-Server empfangen hat, kann sie den Code für ein Zugriffs- und Aktualisierungstoken tauschen, indem eine im URL-Format codierte POST
-Anfrage mit den unten aufgeführten Werten an https://api.hubapi.com/oauth/v1/token
gesendet wird. Weitere Informationen zu diesem Schritt erhalten Sie in diesem Referenzdokument.
Parameter | Beschreibung | Beispiel |
---|---|---|
grant_type |
Muss authorization_code sein |
authorization_code |
client_id |
Die Client-ID Ihrer App | 7fff1e36-2d40-4ae1-bbb1-5266d59564fb |
client_secret |
Das Client-Geheimnis Ihrer App | 7c3ce02c-0f0c-4c9f-9700-92440c9bdf2d |
redirect_uri |
Die Weiterleitungs-URI vom Autorisieren Ihrer App durch den Benutzer | https://www.beispiel.com/auth-callback |
code |
Der Autorisierungscode, der vom OAuth 2.0-Server empfangen wurde | 5771f587-2fe7-40e8-8784-042fb4bc2c31 |
Beispiel:
Der Text der Token-Antwort besteht aus JSON-Daten mit folgendem Format:
Hinweis: Das Zugriffstoken läuft nach der Anzahl der Sekunden ab, die im expires_in
-Feld der Antwort angegeben ist. Aktuell sind dies 30 Minuten. Weitere Informationen zum Abrufen eines neuen Zugriffstokens finden Sie unter Aktualisieren von OAuth 2.0-Token.
Verwenden von OAuth 2.0-Token
Sobald der Autorisierungscode-Prozess abgeschlossen ist, ist Ihre App autorisiert, Anfragen im Namen des Benutzers vorzunehmen. Stellen Sie dazu das Token als ein Bearer-Token im Authorization
-HTTP-Header bereit. Spezifische Details dazu finden Sie im Referenzdokument.
Beispiel:
Bitte beachten: Zugriffstoken spiegeln die von der App angeforderten Bereiche wider. Sie spiegeln nicht die Berechtigungen oder Einschränkungen dessen wider, was ein Benutzer in seinem HubSpot-Account tun kann. Wenn beispielsweise ein Benutzer die Berechtigung hat, nur eigene Kontakte anzuzeigen, aber eine Anfrage für den crm.objects.contacts.read
-Bereich autorisiert, kann das resultierende Zugriffstoken alle Kontakte im Account anzeigen und nicht nur die, die dem autorisierenden Benutzer gehören.
Aktualisieren von OAuth 2.0-Token
OAuth-Zugriffstoken laufen in regelmäßigen Abständen ab. So ist sichergestellt, dass Angreifer bei einem kompromittierten Token nur für eine kurze Zeit Zugriff haben. Die Gültigkeitsdauer des Tokens in Sekunden wird im expires_in
-Feld angegeben, wenn ein Autorisierungscode gegen ein Zugriffstoken getauscht wird.
Ihre App kann das empfangene Aktualisierungstoken gegen ein neues Zugriffstoken tauschen, indem eine im URL-Format codierte POST
-Anfrage mit den unten aufgeführten Werten an https://api.hubapi.com/oauth/v1/token
gesendet wird. Weitere Informationen zu diesem Schritt finden Sie in der Referenzdokumentation.
Parameter | Beschreibung | Beispiel |
---|---|---|
grant_type |
Muss refresh_token sein |
refresh_token |
client_id |
Die Client-ID Ihrer App | 7fff1e36-2d40-4ae1-bbb1-5266d59564fb |
client_secret |
Das Client-Geheimnis Ihrer App | 7c3ce02c-0f0c-4c9f-9700-92440c9bdf2d |
redirect_uri |
Die Weiterleitungs-URI vom Autorisieren Ihrer App durch den Benutzer | https://www.beispiel.com/auth-callback |
refresh_token |
Das Aktualisierungstoken, dass bei der Autorisierung Ihrer App durch den Benutzer empfangen wurde | b9443019-30fe-4df1-a67e-3d75cbd0f726 |
Beispiel:
Der Text der Token-Antwort besteht aus JSON-Daten mit folgendem Format:
Das neue Zugriffstoken kann dann verwendet werden, um Aufrufe im Namen des Benutzers vorzunehmen. Wenn das neue Token abläuft, können Sie anhand der gleichen Schritte ein neues abrufen.