Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Sie können ihre Clientanwendung für die Kommunikation mit Ihrem Bot aktivieren, indem Sie Direct Line API 3.0 verwenden. Direct Line API 3.0 verwendet Branchenstandard REST und JSON über HTTPS.
Basis-URL
Verwenden Sie eine der folgenden Basis-URIs für alle API-Anforderungen, um auf Direct Line API 3.0 zuzugreifen:
Verwenden Sie für globale Bots
https://directline.botframework.comGeben Sie für einen regionalen Bot den folgenden URI gemäß der ausgewählten Region ein:
Region Basis-URL Europe https://europe.directline.botframework.comIndia https://india.directline.botframework.com
Tip
Eine Anforderung schlägt möglicherweise fehl, wenn Sie den globalen Basis-URI für einen regionalen Bot verwenden, da einige Anforderungen über geografische Grenzen hinausgehen können.
Headers
Zusätzlich zu den standardmäßigen HTTP-Anforderungsheadern muss eine Direct Line-API-Anforderung einen Authorization Header enthalten, der einen geheimen Schlüssel oder ein Token angibt, um den Client zu authentifizieren, der die Anforderung ausgibt. Geben Sie die Authorization Kopfzeile mit diesem Format an:
Authorization: Bearer SECRET_OR_TOKEN
Ausführliche Informationen zum Abrufen eines geheimen Schlüssels oder Tokens, den Ihr Client zum Authentifizieren seiner Direct Line API-Anforderungen verwenden kann, finden Sie unter "Authentifizierung".
HTTP-Statuscodes
Der HTTP-Statuscode , der mit jeder Antwort zurückgegeben wird, gibt das Ergebnis der entsprechenden Anforderung an.
| HTTP-Statuscode | Bedeutung |
|---|---|
| 200 | Die Anfrage war erfolgreich. |
| 201 | Die Anfrage war erfolgreich. |
| 202 | Der Antrag wurde zur Bearbeitung angenommen. |
| 204 | Die Anforderung war erfolgreich, aber es wurden keine Inhalte zurückgegeben. |
| 400 | Die Anforderung war falsch formatiert oder anderweitig falsch. |
| 401 | Der Client ist nicht berechtigt, die Anforderung zu stellen. Dieser Statuscode tritt häufig auf, da die Authorization Kopfzeile fehlt oder falsch formatiert ist. |
| 403 | Der Client darf den angeforderten Vorgang nicht ausführen. Der Vorgang kann aus den folgenden Gründen fehlschlagen.
|
| 404 | Die angeforderte Ressource wurde nicht gefunden. In der Regel gibt dieser Statuscode einen ungültigen Anforderungs-URI an. |
| 500 | Innerhalb des Direct Line Diensts ist ein interner Serverfehler aufgetreten. |
| 502 | Der Bot ist nicht verfügbar oder hat einen Fehler zurückgegeben. Dies ist ein gängiger Fehlercode. |
Note
HTTP-Statuscode 101 wird im WebSocket-Verbindungspfad verwendet, obwohl dies wahrscheinlich von Ihrem WebSocket-Client behandelt wird.
Errors
Jede Antwort, die einen HTTP-Statuscode im 4xx-Bereich oder 5xx-Bereich angibt, enthält ein ErrorResponse-Objekt im Textkörper der Antwort, der Informationen zum Fehler bereitstellt. Wenn Sie eine Fehlerantwort im 4xx-Bereich erhalten, überprüfen Sie das ErrorResponse-Objekt , um die Ursache des Fehlers zu identifizieren und das Problem zu beheben, bevor Sie die Anforderung erneut übermitteln.
Note
HTTP-Statuscodes und -Werte, die in der code Eigenschaft innerhalb des ErrorResponse-Objekts angegeben sind, sind stabil. Werte, die in der message Eigenschaft innerhalb des ErrorResponse-Objekts angegeben sind, können sich im Laufe der Zeit ändern.
Die folgenden Codeausschnitte zeigen eine Beispielanforderung und die resultierende Fehlerantwort.
Anforderung
POST https://directline.botframework.com/v3/directline/conversations/abc123/activities
[detail omitted]
Antwort
HTTP/1.1 502 Bad Gateway
[other headers]
{
"error": {
"code": "BotRejectedActivity",
"message": "Failed to send activity: bot returned an error"
}
}
Tokenvorgänge
Verwenden Sie diese Vorgänge, um ein Token zu erstellen oder zu aktualisieren, das ein Client für den Zugriff auf eine einzelne Unterhaltung verwenden kann.
| Vorgang | Description |
|---|---|
| Token generieren | Generieren Sie ein Token für eine neue Unterhaltung. |
| Aktualisierungstoken | Aktualisieren sie ein Token. |
Token generieren
Generiert ein Token, das für eine Unterhaltung gültig ist.
POST /v3/directline/tokens/generate
| Content | Description |
|---|---|
| Anforderungstext | Ein TokenParameters-Objekt |
| Rückgabe | Ein Conversation-Objekt |
Token aktualisieren
Aktualisiert das Token.
POST /v3/directline/tokens/refresh
| Content | Description |
|---|---|
| Anforderungstext | n/a |
| Rückgabe | Ein Conversation-Objekt |
Unterhaltungsvorgänge
Verwenden Sie diese Vorgänge, um eine Unterhaltung mit Ihrem Bot zu öffnen und Aktivitäten zwischen Client und Bot auszutauschen.
| Vorgang | Description |
|---|---|
| Unterhaltung starten | Öffnet eine neue Unterhaltung mit dem Bot. |
| Abrufen von Unterhaltungsinformationen | Ruft Informationen zu einer vorhandenen Unterhaltung ab. Dieser Vorgang generiert eine neue WebSocket-Stream-URL, die ein Client zum erneuten Herstellen einer Verbindung mit einer Unterhaltung verwenden kann. |
| Aktivitäten abrufen | Ruft Aktivitäten vom Bot ab. |
| Senden einer Aktivität | Sendet eine Aktivität an den Bot. |
| Hochladen und Senden von Dateien | Lädt(n) Dateien als Anlagen hoch und sendet sie. |
Starte ein Gespräch
Öffnet eine neue Unterhaltung mit dem Bot.
POST /v3/directline/conversations
| Content | Description |
|---|---|
| Anforderungstext | Ein TokenParameters-Objekt |
| Rückgabe | Ein Conversation-Objekt |
Abrufen von Unterhaltungsinformationen
Ruft Informationen zu einer vorhandenen Unterhaltung ab und generiert auch eine neue WebSocket-Stream-URL, die ein Client zum erneuten Herstellen einer Verbindung mit einer Unterhaltung verwenden kann. Sie können optional den watermark Parameter im Anforderungs-URI angeben, um die zuletzt vom Client angezeigte Nachricht anzugeben.
GET /v3/directline/conversations/{conversationId}?watermark={watermark_value}
| Content | Description |
|---|---|
| Anforderungstext | n/a |
| Rückgabe | Ein Conversation-Objekt |
Aktivitäten abrufen
Ruft Aktivitäten vom Bot für die angegebene Unterhaltung ab. Sie können optional den watermark Parameter im Anforderungs-URI angeben, um die zuletzt vom Client angezeigte Nachricht anzugeben.
GET /v3/directline/conversations/{conversationId}/activities?watermark={watermark_value}
| Content | Description |
|---|---|
| Anforderungstext | n/a |
| Rückgabe | Ein ActivitySet-Objekt . Die Antwort enthält watermark als Eigenschaft des ActivitySet Objekts. Clients sollten durch die verfügbaren Aktivitäten blättern, indem sie den watermark Wert voranbringen, bis keine Aktivitäten zurückgegeben werden. |
Senden einer Aktivität
Sendet eine Aktivität an den Bot.
POST /v3/directline/conversations/{conversationId}/activities
| Content | Description |
|---|---|
| Anforderungstext | Ein Activity-Objekt |
| Rückgabe | Eine ResourceResponse , die eine id Eigenschaft enthält, die die ID der Aktivität angibt, die an den Bot gesendet wurde. |
Hochladen und Senden von Dateien
Lädt(n) Dateien als Anlagen hoch und sendet sie. Legen Sie den userId Parameter im Anforderungs-URI fest, um die ID des Benutzers anzugeben, der die Anlagen sendet.
POST /v3/directline/conversations/{conversationId}/upload?userId={userId}
| Content | Description |
|---|---|
| Anforderungstext | Füllen Sie für eine einzelne Anlage den Anforderungstext mit dem Dateiinhalt auf. Erstellen Sie für mehrere Anlagen einen mehrteiligen Anforderungstext, der einen Teil für jede Anlage enthält, und (optional) einen Teil für das Activity-Objekt , der als Container für die angegebenen Anlagen dienen soll. Weitere Informationen finden Sie unter Senden einer Aktivität an den Bot. |
| Rückgabe | Eine ResourceResponse , die eine id Eigenschaft enthält, die die ID der Aktivität angibt, die an den Bot gesendet wurde. |
Note
Hochgeladene Dateien werden nach 24 Stunden gelöscht.
Schema
Das Direct Line 3.0-Schema enthält alle Objekte, die vom Bot Framework-Schema definiert sind, sowie einige Objekte, die für Direct Line spezifisch sind.
ActivitySet-Objekt
Definiert eine Gruppe von Aktivitäten.
| Property | Typ | Description |
|---|---|---|
| Aktivitäten | Activity[] | Array von Activity-Objekten . |
| Wasserzeichen | string | Maximales Wasserzeichen von Aktivitäten innerhalb des Satzes. Ein Client kann den watermark Wert verwenden, um die neueste Nachricht anzugeben, die er beim Abrufen von Aktivitäten vom Bot oder beim Generieren einer neuen WebSocket-Stream-URL gesehen hat. |
Conversation-Objekt
Definiert eine Direct Line Unterhaltung.
| Property | Typ | Description |
|---|---|---|
| conversationId | string | ID, die die Unterhaltung eindeutig identifiziert, für die das angegebene Token gültig ist. |
| ETag | string | Ein HTTP-ETag (Entitätstag). |
| expires_in | Zahl | Die Anzahl der Sekunden, bis das Token abläuft. |
| referenceGrammarId | string | ID für die Referenzgrammatik für diesen Bot. |
| streamUrl | string | URL für den Nachrichtenstream der Unterhaltung. |
| token | string | Token, das für die angegebene Unterhaltung gültig ist. |
TokenParameters-Objekt
Parameter zum Erstellen eines Tokens.
| Property | Typ | Description |
|---|---|---|
| ETag | string | Ein HTTP-ETag (Entitätstag). |
| trustedOrigins | string[] | Vertrauenswürdige Ursprünge, die in das Token eingebettet werden sollen. |
| user | ChannelAccount | Benutzerkonto, das in das Token eingebettet werden soll. |
Aktivitäten
Für jede Aktivität, die ein Client über Direct Line von einem Bot empfängt:
- Anlagenkarten bleiben erhalten.
- URLs für hochgeladene Anlagen werden mit einem privaten Link ausgeblendet.
- Die
channelDataEigenschaft wird ohne Änderung beibehalten.
Clients können mehrere Aktivitäten vom Bot als Teil eines ActivitySetserhalten.
Wenn ein Client einen Activity Bot über Direct Line an einen Bot sendet:
- Die
typeEigenschaft gibt die Typaktivität an, die gesendet wird (in der Regel Nachricht). - Die
fromEigenschaft muss mit einer Benutzer-ID aufgefüllt werden, die vom Client ausgewählt wird. - Anlagen können URLs zu vorhandenen Ressourcen oder URLs enthalten, die über den Direct Line Anlagenendpunkt hochgeladen wurden.
- Die
channelDataEigenschaft wird ohne Änderung beibehalten. - Die Gesamtgröße der Aktivität, wenn sie in JSON serialisiert und verschlüsselt ist, darf 256K-Zeichen nicht überschreiten. Es wird empfohlen, Aktivitäten unter 150K zu halten. Wenn weitere Daten erforderlich sind, sollten Sie die Aktivität aufteilen oder Anlagen verwenden.
Clients können eine einzelne Aktivität pro Anforderung senden .