Schnittstelle: Anmeldung, Schlüssel und Rechte
Sitzungsmarke, API-Schlüssel und Schlüssel des Chatfensters: Anmeldung an der Schnittstelle mit Bereichen, Rollen, Deckeln und Fehlerantworten.
In einfacher Sprache
Wer die Schnittstelle nutzt, muss sich ausweisen. Dafür gibt es mehrere Wege. Die Anwendung selbst nutzt eine Marke aus der Anmeldung. Eigene Systeme nutzen einen Schlüssel. Das Chatfenster hat einen eigenen, öffentlichen Schlüssel. Jeder Weg öffnet nur seinen eigenen Teil. Danach zählen auch die Rolle und das Paket. Die Seite erklärt jede Stufe und jede Ablehnung.
Alle Themen der Dokumentation
Die Schnittstelle unter https://app.xicbot.de/api/v1/ kennt drei Anmeldewege, und jeder öffnet nur seinen eigenen Zweig: die Sitzungsmarke aus der Anmeldung für alles, was die Anwendung selbst tut, den API-Schlüssel für die Anbindung eigener Systeme unter /api/v1/integration/ und den öffentlichen Schlüssel des Chatfensters. Danach entscheiden Status des Kontos, bestätigte E-Mail-Adresse, Rolle, Tarif und Bereich, ob eine Anfrage durchkommt. Diese Seite beschreibt die Stufen der Reihe nach, jeweils mit ihren Ablehnungen.
Drei Anmeldewege im Überblick
| Weg | Wie er mitgeschickt wird | Öffnet | Gültig |
|---|---|---|---|
| Sitzungsmarke | Kopf Authorization: Bearer <Marke> | die Routen der Anwendung unter /api/v1/ | 30 Tage ab Anmeldung; eine Übernahme durch den Betreiber 4 Stunden |
| API-Schlüssel | Kopf X-Api-Key: xbot_… | nur /api/v1/integration/… | bis zum gewählten Ablauf oder bis zum Zurückziehen; ohne Angabe ohne Ablauf |
| Öffentlicher Schlüssel des Chatfensters | im Pfad: /api/v1/public/widget/{key}/… | nur die Routen des Chatfensters dieses einen Assistenten | bis ein neuer Schlüssel erzeugt wird |
Die Wege lassen sich nicht vertauschen. An /api/v1/integration/ zählt nur der Kopf X-Api-Key; eine Sitzungsmarke dort endet mit 401 und key_missing. Umgekehrt ist ein API-Schlüssel keine Sitzungsmarke: im Kopf Authorization an einer Route der Anwendung endet er mit 401. Routen ohne Anmeldung (Anmelden, Statusseite, Anfrageformular, Demo, Rechtstexte, Einladung, Warenkorb) beschreibt Öffentliche Wege.
Es gibt eine Fassung der Schnittstelle, v1, und sie steht im Pfad. Eine Adresse wie /api/v2/… bekommt dieselbe Antwort wie eine erfundene: 404 mit route_unknown. Gibt es den Pfad, aber nicht mit der verwendeten Methode, lautet die Antwort 405 mit method_not_allowed, und allowed listet die Methoden, die der Pfad annimmt. Ein Accept-Kopf ist nicht nötig; unter /api/ antwortet die Schnittstelle in JSON, auch mit 401, wenn die Anmeldung fehlt. Aufbau der Antworten und Fehler: Grundlagen der Schnittstelle.
Sitzungsmarke aus der Anmeldung
POST /api/v1/login mit E-Mail-Adresse und Passwort liefert bei Erfolg token, expires_at und user. Jede Anmeldung bekommt eine eigene Marke mit 30 Tagen Laufzeit. Benannt wird sie nach der Kennung des Browsers oder Programms (User-Agent, höchstens 190 Zeichen), ohne Kennung heißt sie sitzung. Die Marke gehört in jede weitere Anfrage als Authorization: Bearer <Marke>. Die Felder der Anmeldung im Einzelnen stehen unter Öffentliche Wege.
422mitbad_credentials: Adresse oder Passwort stimmen nicht.428mittotp_requiredoderwebauthn_required: ein zweiter Faktor ist eingerichtet. Die Antwort trägtchallenge,expires_in(600 Sekunden) undmethods, bei hinterlegtem Sicherheitsschlüssel zusätzlich das Objektwebauthnmitchallenge,rp_id,allowundtimeout; mehr unter Konto und Sicherheit.422mitbad_totp: der Code des zweiten Faktors stimmt nicht.422mitchallenge_expired: der Nachweis aus der428-Antwort gilt nicht mehr, weil die 600 Sekunden abgelaufen sind, weil der zweite Schritt von einer anderen IP-Adresse kommt als der erste oder weil der Nutzer inzwischen keinen zweiten Faktor mehr hat.422mitbad_webauthnundreason: die Anmeldung mit dem Sicherheitsschlüssel wurde nicht angenommen,reasonnennt den Grund.422mitwebauthn_not_offered: der zweite Aufruf schickt eine Schlüsselunterschrift, obwohl die428-Antwort keinwebauthninmethodshatte.503mitwebauthn_unconfigured: die Anmeldung mit Sicherheitsschlüssel steht derzeit nicht zur Verfügung.429mittoo_many_attemptsundretry_in: zu viele Versuche, siehe Grenzen der Schnittstelle.403mittenant_paused,tenant_suspendedodertenant_deleted: das Konto ist nicht aktiv, und der Nutzer gehört keinem weiteren aktiven Konto an; es wird keine Marke ausgegeben. Gehört er einem weiteren aktiven Konto an, meldet ihn die Anmeldung dort an, ein Konto, dessen Inhaber er ist, zuerst, sonst das, dem er am längsten angehört; der Wechsel steht dort im Protokoll mitcauselogin, eine laufende Übernahme endet. Diese Antwort kommt erst nach richtigen Zugangsdaten und bestandenem zweitem Faktor und trägt, anders als bei späteren Anfragen, kein Feldmessage.
Mit welchen Rechten eine Marke arbeitet, zeigt GET /api/v1/me. Maßgeblich sind user.role, user.email_verified und user.operator sowie tenant.status, tenant.plan und tenant.features; ohne zugeordnetes Konto ist tenant null. Die Route und alle Felder beschreibt Konto per Schnittstelle.
Befehl in der Schale bash
curl -s https://app.xicbot.de/api/v1/me \
-H "Authorization: Bearer <Marke>"Fehlt die Marke, ist sie abgelaufen oder gelöscht, antwortet jede Route mit Anmeldung mit 401. Die Anwendung hält ihre Marke im lokalen Speicher des Browsers; bekommt sie ein 401, beendet sie die Sitzung und zeigt auf der Anmeldeseite Ihre Sitzung ist abgelaufen. Bitte melden Sie sich erneut an. POST /api/v1/logout löscht genau die Marke, mit der es aufgerufen wird. Mit einer Übernahmemarke gilt das als Ende der Übernahme: im Protokoll steht impersonation.end, keine Abmeldung. Anmeldungen auf anderen Geräten bleiben bestehen.
POST /api/v1/invitation/accept nimmt eine Einladung an, solange es zur eingeladenen Adresse noch kein Nutzerkonto gibt; ein gelöschtes Konto zählt dabei nicht mit. Es wird wiederhergestellt und beginnt wie ein neues: mit dem Passwort aus dieser Anfrage, ohne zweite Stufe, ohne Sicherheitsschlüssel und ohne frühere Marken. Dabei setzen Sie ein Passwort mit mindestens 12 Zeichen aus Buchstaben und Ziffern, bestätigt in password_confirmation. Die Antwort kommt mit 201 und einer Marke mit 30 Tagen Laufzeit namens einladung; sie trägt neben token, expires_at und user auch tenant. Ohne Protokolleintrag entstehen weder Konto noch Mitgliedschaft, die Einladung bleibt offen, und die Antwort ist 500 mit not_logged. Gibt es zur Adresse schon ein Nutzerkonto, das nicht gelöscht ist, lautet die Antwort 409 mit login_required und email. Dann melden Sie sich an und nehmen die Einladung mit POST /api/v1/team/invitations/accept an; diese Route verlangt keine bestätigte E-Mail-Adresse, eine noch unbestätigte gilt mit der Annahme als bestätigt. Sie antwortet mit 403 und wrong_account, wenn eine andere Adresse angemeldet ist als die eingeladene. Ohne Protokolleintrag tritt das Konto nicht bei, die Antwort ist dann 500 mit not_logged. Einladen und Rollen vergeben: Team und Rollen.
API-Schlüssel für eigene Systeme
Ein API-Schlüssel gehört zum Konto und öffnet nur /api/v1/integration/. Er besteht aus xbot_ und 48 zufälligen Buchstaben und Ziffern und steht im Kopf X-Api-Key; einen Weg über Authorization: Bearer gibt es für Schlüssel nicht. Die Anwendung sagt dazu Ein Schlüssel wird genau einmal im Klartext angezeigt. Gespeichert wird nur sein Abdruck. Abgelegt werden der SHA-256-Abdruck und die ersten zwölf Zeichen; diese bleiben als Kennung sichtbar, damit sich Schlüssel in der Liste auseinanderhalten lassen.
Die Schnittstelle prüft einen Schlüssel in fester Reihenfolge; die erste zutreffende Stufe antwortet:
| Stufe | Fall | Status | Fehler |
|---|---|---|---|
| 1 | api_key oder key in der Adresse | 400 | key_in_url |
| 2 | Kopf X-Api-Key fehlt, ist leer oder beginnt nicht mit xbot_ | 401 | key_missing |
| 3 | Schlüssel unbekannt, zurückgezogen oder abgelaufen; alle drei antworten gleich | 401 | invalid_key |
| 4 | Konto nicht aktiv, gleich ob pausiert, gesperrt oder gelöscht | 403 | tenant_suspended |
| 5 | Das Paket des Kontos enthält die Funktion für Schlüssel und Webhooks nicht, etwa nach einem Tarifwechsel | 402 | plan_feature_missing |
| 6 | Minuten- oder Tagesdeckel erreicht | 429 | too_many_requests |
| 7 | die Route verlangt einen Bereich, den der Schlüssel nicht trägt | 403 | read_only oder scope_missing |
Minuten- und Tagesdeckel
Jeder Schlüssel hat einen Minutendeckel aus Anfragen pro Minute und einen Tagesdeckel, dessen Höhe am Konto steht; beide zählen je Schlüssel. Ist einer erreicht, antwortet die Schnittstelle mit 429 und too_many_requests und nennt die Wartezeit in retry_after und im Kopf Retry-After. Werte, Zeitfenster, Zählweise und ein Beispiel der Antwort stehen unter Paketsperren und Drosseln.
Für den ersten Test eines neuen Schlüssels eignet sich GET /api/v1/integration/status: die Route verlangt keinen Bereich, liest keine Daten und nennt Konto, Bereiche und Minutendeckel des Schlüssels. Antwort und Beispiel stehen unter Schnittstelle: Integration.
Bereiche eines Schlüssels
Welche Routen ein Schlüssel erreicht, bestimmen seine Bereiche. Jeder Bereich gilt genau so, wie er heißt: leads.write schließt leads nicht ein. Wer Anfragen anlegen und lesen will, braucht beide. Die Anwendung sagt dazu Schreiben ist ein eigener Bereich. Ohne ihn liest ein Schlüssel nur. Pfade relativ zu /api/v1/integration/:
| Bereich | In der Anwendung | Routen |
|---|---|---|
conversations | Gespräche lesen | GET conversations, GET conversations/{id} |
leads | Anfragen lesen | GET leads |
leads.write | Anfragen anlegen | POST leads |
appointments | Termine lesen | GET appointments |
analytics | Auswertung lesen | GET analytics |
knowledge.write | Wissensquellen anlegen | POST knowledge/sources |
chat | Chat verwenden | POST chat |
| kein Bereich nötig | - | GET status |
Fehlt der verlangte Bereich, antwortet die Route mit 403, und required nennt ihn. Endet er auf .write, heißt der Fehler read_only, sonst scope_missing.
Bereiche, Name und Minutendeckel eines Schlüssels lassen sich nach dem Anlegen nicht ändern; eine Route dafür gibt es nicht. Für andere Bereiche legen Sie einen neuen Schlüssel an und ziehen den alten zurück.
API-Schlüssel in der Anwendung verwalten
Angelegt, aufgelistet und zurückgezogen werden Schlüssel auf der Seite Schnittstellen unter https://app.xicbot.de/schnittstellen, ab der Rolle Verwaltung. Anlegen setzt voraus, dass der Tarif das Merkmal enthält; sonst antwortet POST /api/v1/keys mit 402 und plan_feature_missing. Auflisten und Zurückziehen gehen auch ohne das Merkmal, damit sich ein Schlüssel aus der Zeit vor einem Tarifwechsel zurückziehen lässt; benutzen lässt er sich ohne das Merkmal nicht. Die Routen GET /api/v1/keys, POST /api/v1/keys und DELETE /api/v1/keys/{id} verlangen dieselbe Rolle, eine bestätigte E-Mail-Adresse dagegen nicht. Gültig sein können höchstens zehn Schlüssel gleichzeitig, und den Klartext enthält nur die Antwort auf das Anlegen. Felder, Schritte, Liste und Zurückziehen beschreibt Schlüssel und Webhooks; welche Tarife das Merkmal tragen, zeigen Pakete und Kontingente und die Preise.
Öffentlicher Schlüssel des Chatfensters
Jeder Assistent bekommt beim Anlegen einen öffentlichen Schlüssel aus 32 Hexadezimalzeichen. Er steht nicht in einem Kopf, sondern im Pfad: /api/v1/public/widget/{key}/…. Eine Sitzung braucht dieser Zweig nicht. Am Assistenten zeigt die Anwendung ihn unter Öffentlicher Schlüssel mit dem Hinweis Er steht im Klartext auf jeder fremden Seite. Er erlaubt nur, dieses eine Chatfenster zu nutzen.
Vier Fälle antworten gleich, mit 404 und unknown_widget: der Schlüssel ist unbekannt, Chatfenster freigeben ist aus, der Assistent steht nicht auf aktiv (also auf Entwurf oder pausiert), oder das Konto ist nicht aktiv. Von außen ist nicht zu unterscheiden, welcher Fall vorliegt. Ein neuer Assistent hat Chatfenster freigeben ausgeschaltet. Trifft keiner der vier Fälle zu und gehört der Assistent zu einem Demokonto, dessen Frist abgelaufen ist, lautet die Antwort 404 mit demo_expired.
Neuen Schlüssel erzeugen ersetzt den Schlüssel nach der Rückfrage Neuen Schlüssel erzeugen? Der bisherige Einbaucode hört sofort auf zu arbeiten. Danach steht Neuer Schlüssel ist aktiv. Bitte den Einbaucode überall austauschen. Das dürfen die Rollen Verwaltung und Inhaber; die übrigen sehen Einen neuen Schlüssel erzeugt, wer die Rolle Verwaltung oder Inhaber hat. Den Einbaucode beschreibt Widget einbauen, die Routen des Zweigs Schnittstelle des Chatfensters.
Über die Schnittstelle tauscht POST /api/v1/assistants/{id}/key den Schlüssel aus. Bedingungen, Antwort und Fehler der Route stehen unter Schnittstelle: Wissen und Assistenten.
Was eine Route zusätzlich verlangt
Nach dem Anmeldeweg prüft die Schnittstelle je Routengruppe weitere Bedingungen, und zwar bei jeder Anfrage:
| Routen unter /api/v1/ | Verlangt |
|---|---|
Anmelden und Registrieren, public/status, Anfrageformular, Demo, Rechtstexte, Einladung, Warenkorb | keine Anmeldung |
public/widget/{key}/… | öffentlicher Schlüssel eines freigegebenen, aktiven Assistenten in einem aktiven Konto |
integration/… | API-Schlüssel und Tarifmerkmal; außer status verlangt jede Route einen Bereich |
Kontorouten wie me, logout, password, sessions, zweiter Faktor | Sitzungsmarke, aktives Konto |
keys, webhooks | Sitzungsmarke, aktives Konto, Rolle Verwaltung; Tarifmerkmal zum Anlegen, Ändern und für die Probe |
impersonation/stop | Sitzungsmarke, aktives Konto |
knowledge, einrichtung, assistants, billing, privacy, conversations, blocks, team, routing, tools, catalog, analytics, records | Sitzungsmarke, aktives Konto, bestätigte E-Mail-Adresse |
activity | zusätzlich Rolle Verwaltung |
admin/… | Sitzungsmarke, aktives Konto (ein Betreiber ohne eigenes Konto kommt auch so durch), bestätigte E-Mail-Adresse, Betreiberzugang, keine laufende Übernahme |
Einzelne Routen verlangen darüber hinaus eine Rolle oder ein Tarifmerkmal; das steht bei der Route in Wissen und Assistenten und Gespräche und Verwaltung. Die Ablehnungen der Sitzungsrouten und was die Anwendung dazu anzeigt:
| Status | Fehler | Bedeutung | Meldung in der Anwendung |
|---|---|---|---|
401 | - | Marke fehlt, ist abgelaufen oder gelöscht | Abmeldung, dann Ihre Sitzung ist abgelaufen. Bitte melden Sie sich erneut an. |
403 | no_tenant | der Nutzer hat kein Konto | Für diesen Bereich fehlt Ihrem Konto die Berechtigung. |
403 | tenant_paused, tenant_suspended, tenant_deleted | das Konto ist nicht aktiv; message lautet „Das Konto ist derzeit nicht aktiv.“ | Dieses Konto ist gesperrt. Bitte schreiben Sie an mail@xicbot.de. |
403 | email_unverified | die E-Mail-Adresse ist nicht bestätigt | Dieser Bereich bleibt gesperrt, bis die E-Mail-Adresse bestätigt ist. |
403 | role_too_low mit required | die Rolle reicht nicht | bei editor: Mit der Rolle Lesen lässt sich hier nur ansehen. Ändern kann, wer mindestens die Rolle Bearbeiten hat. Bei owner: Das darf nur der Inhaber des Kontos. Sonst: Das darf, wer mindestens die Rolle Verwaltung hat. |
402 | plan_feature_missing mit feature, plan, plan_name, available_in | der Tarif enthält das Merkmal nicht | Der Tarif {tarif} enthält diese Funktion nicht. Die Übersicht steht unter Abrechnung. |
403 | not_operator | kein Betreiberzugang | Dieser Bereich ist dem Betreiber vorbehalten. |
403 | in_impersonation | während einer Übernahme gesperrt | Während einer Übernahme ist dieser Bereich gesperrt. |
Der Status des Kontos (active, paused, suspended oder deleted) wird bei jeder Anfrage geprüft, nicht nur beim Anmelden. Wird ein Konto pausiert, scheitert also auch eine noch gültige Marke mit 403. Ausgenommen sind POST /api/v1/tenant/switch, damit sich aus einem nicht aktiven Konto heraus in ein anderes wechseln lässt, sowie POST /api/v1/logout und POST /api/v1/impersonation/stop, die nur die eigene Marke beenden. Ohne bestätigte E-Mail-Adresse bleiben die Kontorouten, die Schlüsselverwaltung und impersonation/stop erreichbar, die Fachbereiche nicht; wie Sie die Adresse bestätigen, steht unter Anmelden und Zugang.
Rollen
| Rolle in der Anwendung | Wert in role | Rang |
|---|---|---|
| Lesen | viewer | 10 |
| Bearbeiten | editor | 20 |
| Verwaltung | admin | 30 |
| Inhaber | owner | 40 |
Eine Route mit Rollenbedingung verlangt mindestens den genannten Rang; höhere Rollen kommen ebenfalls durch. Eine unbekannte eigene Rolle zählt als 0, eine unbekannte verlangte Rolle als 99, beides endet also mit einer Ablehnung: 403 mit role_too_low und required. Einzelne Routen verlangen die Rolle Inhaber, etwa die Datenausfuhr mit GET /api/v1/privacy/export. Was jede Rolle in der Anwendung darf, steht unter Team und Rollen.
Die Rolle hängt am Paar aus Nutzer und Konto. Wer mit POST /api/v1/tenant/switch in ein anderes Konto wechselt, bekommt die Rolle, die er dort hat. Ein Konto, dem der Nutzer nicht angehört, ergibt dieselbe Antwort wie ein unbekanntes: 404 mit not_found. Ist das Ziel nicht aktiv, lautet die Antwort 403 mit tenant_<status> und „Das Konto ist derzeit nicht aktiv.“ Während einer Übernahme ist der Wechsel gesperrt (403, in_impersonation).
Betreiberzugang und Übernahme
Betreiber ist keine Rolle, sondern ein eigenes Merkmal des Nutzers (user.operator). Ein Inhaber ist darum kein Betreiber. Die Routen unter /api/v1/admin/ verlangen dieses Merkmal und eine bestätigte Adresse; ohne Merkmal antworten sie mit 403 und not_operator, während einer Übernahme mit 403 und in_impersonation. In der Navigation steht Betrieb in der Gruppe Betreiber nur für Betreiber und nicht während einer Übernahme.
Zur Fehlersuche kann der Betreiber ein Konto übernehmen, in der Anwendung mit Konto übernehmen und dem Feld Grund der Übernahme, über die Schnittstelle mit POST /api/v1/admin/tenants/{id}/impersonate und optional reason. Der Grund wird nach 200 Zeichen abgeschnitten. Die Übernahme erzeugt eine eigene Marke für den ranghöchsten Nutzer, der gerade in diesem Konto arbeitet, bei gleichem Rang für den am längsten eingetragenen; ein Mitglied, das gerade in einem anderen Konto arbeitet, zählt nicht mit. Sie gilt 4 Stunden, ihr Name beginnt mit impersonation:, und es wird dabei kein Passwort gelesen oder gesetzt. Der Beginn wird mit dem Grund protokolliert, das Ende ohne ihn.
- Die Antwort trägt
token,expires_at,user(id,email,name) undtenant(id,name). Ein unbekanntes Konto ergibt404mitunknown, ein nicht aktives409mittenant_inactive, ein Konto, in dem gerade niemand arbeitet,422mittenant_without_user. - Mit der Übernahmemarke liefert
GET /api/v1/meunterimpersonationdie Adresse des Betreibers (operator) undexpires_at. Die Anwendung zeigt dann in der Statusleiste Übernahme mit dieser Adresse und dem Knopf Übernahme beenden; ein Vorleseprogramm hört dort Sie arbeiten im Konto eines Kunden. - Abmelden während einer Übernahme beendet sie wie Übernahme beenden; in der Anwendung ist dann auch der Betreiber in seinem eigenen Konto abgemeldet.
- In der Sitzungsliste unter Konto in Angemeldete Geräte erscheint die Übernahme als Übernahme durch den Betreiber. Alle anderen beenden (
DELETE /api/v1/sessions) lässt sie und die API-Schlüssel des Kontos stehen; mit Beenden in ihrer Zeile beendet der Kunde sie (DELETE /api/v1/sessions/{id}). - Gesperrt mit
403undin_impersonationsind: Passwort ändern (in der Anwendung Während einer Betreuung lässt sich das Passwort nicht ändern.), alle anderen Sitzungen auf einmal beenden, den zweiten Faktor einrichten, bestätigen oder entfernen, Sicherheitsschlüssel anlegen oder entfernen, das Konto wechseln und die Routen unter/api/v1/admin/. Einzeln beenden (DELETE /api/v1/sessions/{id}) lässt sich aus einer Übernahme nur die Übernahme selbst; jede andere Sitzung ergibt ebenfalls403mitin_impersonation. - Die Minutendeckel je Nutzer, etwa für Assistenten oder das Anlegen von Schlüsseln, gelten während einer Übernahme nicht, weil die Anfragen sonst auf den Zähler des Kunden liefen. Weiter zählt der Deckel für das Annehmen des Vertrags zur Auftragsverarbeitung (
POST /api/v1/privacy/dpa).
POST /api/v1/impersonation/stop
Beendet die Übernahme: die Übernahmemarke wird gelöscht, das Ende in der Regel protokolliert, die Antwort ist {"ok": true}. Beenden Betreiber und Kunde die Übernahme gleichzeitig, schreibt nur der Aufruf das Ende, der die Marke tatsächlich gelöscht hat; es steht dann nicht doppelt im Protokoll. Mit einer gewöhnlichen Sitzungsmarke antwortet die Route mit 400 und no_impersonation. Sie gilt auch, wenn das Konto inzwischen nicht mehr aktiv ist. Sie liegt außerhalb von /api/v1/admin/, weil dieser Zweig während einer Übernahme gesperrt ist.
- Anmeldung
- Übernahmemarke
Hat eine Person das einzige Gerät für die zweite Stufe verloren, kann der Betreiber die zweite Stufe zurücksetzen. In der Anwendung ist unter Betrieb auf der Seite eines Mandanten die Zahl neben Nutzer ein Schalter, der die Personen des Mandanten mit Name, E-Mail-Adresse, Rolle, Zweite Stufe und Aktion aufklappt. Gezählt und aufgeführt werden alle, die dem Mandanten angehören, auch wenn sie gerade in einem anderen Mandanten arbeiten; Rolle ist ihre Rolle in diesem Mandanten. Bei Kundenkonten mit eingerichteter zweiter Stufe steht dort Zweite Stufe zurücksetzen, bei Betreiberkonten Betreiberkonto. Der Knopf öffnet die Frage Code und Sicherheitsschlüssel dieser Person entfernen und alle ihre Sitzungen beenden? mit dem Feld Grund (steht im Betreiberprotokoll) (10 bis 500 Zeichen) und den Knöpfen Zurücksetzen und Abbrechen. Über die Schnittstelle heißt der Weg POST /api/v1/admin/users/{id}/second-factor/reset mit reason. Entfernt werden Code und Sicherheitsschlüssel, alle Sitzungen der Person enden, und die Antwort trägt ok, sessions_ended und mail_queued. Ist mail_queued false, ließ sich die Sicherheitsmeldung an die Kontoadresse nicht einreihen; die Anwendung bittet dann, die Person selbst zu benachrichtigen. Ein Betreiberkonto ergibt 403 mit operator_account, eine Person ohne zweite Stufe 409 mit no_second_factor, eine unbekannte Kennung 404 mit unknown. Kommt die Zeile im Betreiberprotokoll oder im Protokoll des Kontos nicht zustande, bleibt das Zurücksetzen aus, und die Antwort ist 500 mit not_logged.
Häufige Fragen
Kann ich einen API-Schlüssel an den Routen der Anwendung verwenden?
Nein. Ein API-Schlüssel öffnet nur /api/v1/integration/. An den übrigen Routen mit Anmeldung zählt die Sitzungsmarke im Kopf Authorization; ein Schlüssel dort endet mit 401.
Warum antwortet das Chatfenster mit 404 und unknown_widget?
Einer von vier Fällen liegt vor: der Schlüssel ist unbekannt oder wurde ersetzt, Chatfenster freigeben ist aus, der Assistent steht nicht auf aktiv, oder das Konto ist nicht aktiv. Die Antwort unterscheidet die Fälle nicht; prüfen Sie sie am Assistenten der Reihe nach.
Wie lange gilt eine Sitzungsmarke?
30 Tage ab der Anmeldung, eine Marke aus einer Einladung ebenso, eine Übernahmemarke 4 Stunden. POST /api/v1/logout löscht sie sofort. Ist das Konto nicht aktiv, scheitern Anfragen mit ihr an 403, auch wenn sie noch gilt; abmelden lässt sie sich trotzdem.
Lassen sich die Bereiche eines Schlüssels nachträglich ändern?
Nein, dafür gibt es keine Route. Legen Sie einen neuen Schlüssel mit den gewünschten Bereichen an und ziehen Sie den alten mit Zurückziehen zurück.
Was passiert mit Marken und Schlüsseln, wenn das Konto pausiert wird?
Sie bleiben bestehen, werden aber abgewiesen: Sitzungsmarken mit 403 und tenant_paused, API-Schlüssel mit 403 und tenant_suspended, der öffentliche Schlüssel des Chatfensters mit 404 und unknown_widget. Ist das Konto wieder aktiv, gelten sie wieder, sofern sie inzwischen nicht abgelaufen sind.
Woran erkenne ich, dass der Betreiber mein Konto übernommen hat?
In der Sitzungsliste unter Konto in Angemeldete Geräte steht dann ein Eintrag Übernahme durch den Betreiber. Er verschwindet, wenn die Übernahme beendet wird oder nach 4 Stunden abläuft. Mit Beenden in dieser Zeile beenden Sie die Übernahme selbst.
Selbst fragen, Assistent dieser Website
Automatischer Assistent