API-Referenz – Direct Line API 1.1
Wichtig
Dieser Artikel enthält Referenzinformationen für Direct Line API 1.1. Wenn Sie eine neue Verbindung zwischen Ihrer Clientanwendung und Ihrem Bot erstellen, verwenden Sie stattdessen Direct Line API 3.0.
Mit Direct Line API 1.1 Sie können Ihre Clientanwendung für die Kommunikation mit Ihrem Bot aktivieren. Direct Line API 1.1 verwendet die Branchenstandards REST und JSON über HTTPS.
Basis-URI
Verwenden Sie für den Zugriff auf Direct Line API 1.1 diesen Basis-URI für alle API-Anforderungen:
https://directline.botframework.com
Header
Zusätzlich zu den Standard-HTTP-Anforderungsheadern muss eine Direct Line-API-Anforderung einen Authorization
-Header enthalten, der einen Geheimnis oder ein Token zum Authentifizieren des Clients angibt, der die Anforderung sendet. Sie können den Authorization
-Header mit dem Schema „Bearer“ oder dem Schema „BotConnector“ angeben.
Bearer-Schema:
Authorization: Bearer SECRET_OR_TOKEN
BotConnector-Schema:
Authorization: BotConnector SECRET_OR_TOKEN
Ausführliche Informationen zum Abrufen eines Geheimnisses oder eines Tokens, mit denen der Client seine Direct Line-API-Anforderungen authentifizieren kann, finden Sie unter Authentifizierung.
HTTP-Statuscodes
Der HTTP-Statuscode, der mit jeder Antwort zurückgegeben wird, gibt das Ergebnis der entsprechende Anforderung an.
HTTP-Statuscode | Bedeutung |
---|---|
200 | Die Anforderung war erfolgreich. |
204 | Die Anforderung war erfolgreich, aber es wurden keine Inhalte zurückgegeben. |
400 | Die Anforderung war falsch formatiert oder auf andere Weise fehlerhaft. |
401 | Der Client ist nicht berechtigt, die Anforderung vorzunehmen. Dieser Statuscode tritt häufig aufgrund eines fehlenden oder falsch formatierten Authorization -Headers auf. |
403 | Der Client darf den angeforderten Vorgang nicht ausführen. Dieser Statuscode tritt häufig auf, weil der Authorization -Header ein ungültiges Token oder einen ungültigen geheimen Schlüssel angibt. |
404 | Die angeforderte Ressource wurde nicht gefunden. In der Regel weist dieser Statuscode auf einen ungültigen Anforderungs-URI hin. |
500 | Innerhalb des Direct Line-Diensts ist ein interner Serverfehler aufgetreten. |
502 | Im Bot ist ein Fehler aufgetreten. Der Bot ist nicht verfügbar oder hat einen Fehler zurückgegeben. Dies ist ein häufig auftretender Fehlercode. |
Tokenvorgänge
Verwenden Sie diese Vorgänge zum Erstellen oder Aktualisieren eines Tokens, mit dessen Hilfe ein Client auf eine einzelne Konversationen zugreifen kann.
Vorgang | BESCHREIBUNG |
---|---|
Token generieren | Generiert ein Token für eine neue Konversation. |
Token aktualisieren | Aktualisiert ein Token. |
Generieren eines Tokens
Generiert ein Token, das für eine Konversation gültig ist.
POST /api/tokens/conversation
Inhalt | Beschreibung |
---|---|
Anforderungstext | – |
Rückgabe | Eine Zeichenfolge, die das Token darstellt |
Aktualisieren eines Tokens
Aktualisiert das Token.
GET /api/tokens/{conversationId}/renew
Inhalt | Beschreibung |
---|---|
Anforderungstext | – |
Rückgabe | Eine Zeichenfolge, die das neue Token darstellt |
Konversationsvorgänge
Verwenden Sie diese Vorgänge, um eine Konversation mit Ihrem Bot zu öffnen und Nachrichten zwischen Client und Bot auszutauschen.
Vorgang | BESCHREIBUNG |
---|---|
Konversation starten | Startet eine neue Konversation mit dem Bot. |
Get Messages | Empfängt Nachrichten vom Bot. |
Nachricht senden | Sendet eine Nachricht an den Bot. |
Datei(en) hochladen und senden | Lädt Dateien hoch und sendet sie als Anlagen. |
Starten einer Konversation
Startet eine neue Konversation mit dem Bot.
POST /api/conversations
Inhalt | Beschreibung |
---|---|
Anforderungstext | – |
Rückgabe | Ein Conversation-Objekt. |
Nachrichten abrufen
Ruft Nachrichten vom Bot für eine angegebene Konversation ab. Legen Sie den watermark
-Parameter im Anforderungs-URI so fest, dass die neueste Nachricht vom Client angezeigt wird.
GET /api/conversations/{conversationId}/messages?watermark={watermark_value}
Inhalt | Beschreibung |
---|---|
Anforderungstext | – |
Rückgabe | Ein MessageSet-Objekt. Die Antwort enthält watermark als Eigenschaft des MessageSet -Objekts. Clients sollten durch die verfügbaren Nachrichten blättern, indem der watermark -Wert erhöht wird, bis keine Nachrichten mehr zurückgegeben werden. |
Nachricht senden
Sendet eine Nachricht an den Bot.
POST /api/conversations/{conversationId}/messages
Inhalt | Beschreibung |
---|---|
Anforderungstext | Ein Message-Objekt |
Rückgabe | Es werden keine Daten im Text der Antwort zurückgegeben. Der Dienst antwortet mit einem Statuscode „HTTP 204“, wenn die Nachricht erfolgreich gesendet wurde. Der Client kann die gesendete Nachricht (zusammen mit allen Nachrichten, die vom Bot an den Client gesendet wurden) mithilfe des Nachrichten abrufen-Vorgangs abrufen. |
Datei(en) hochladen und senden
Lädt Dateien hoch und sendet sie als Anlagen. Legen Sie den userId
-Parameter im Anforderungs-URI auf die ID des Benutzers fest, der die Anlagen sendet.
POST /api/conversations/{conversationId}/upload?userId={userId}
Inhalt | Beschreibung |
---|---|
Anforderungstext | Füllen Sie für eine einzelne Anlage den Anforderungstext mit dem Dateiinhalt. Für mehrere Anlagen erstellen Sie einen mehrteiligen Anforderungstext, der einen Teil für jede Anlage und (optional) auch einen Teil für das Message-Objekt enthält, das als Container für die angegebene(n) Anlage(n) fungieren soll. Weitere Informationen finden Sie unter Senden einer Nachricht an den Bot. |
Rückgabe | Es werden keine Daten im Text der Antwort zurückgegeben. Der Dienst antwortet mit einem Statuscode „HTTP 204“, wenn die Nachricht erfolgreich gesendet wurde. Der Client kann die gesendete Nachricht (zusammen mit allen Nachrichten, die vom Bot an den Client gesendet wurden) mithilfe des Nachrichten abrufen-Vorgangs abrufen. |
Hinweis
Hochgeladene Dateien werden nach 24 Stunden gelöscht.
Schema
Das Direct Line 1.1-Schema ist eine vereinfachte Kopie des Bot Framework v1-Schemas, das die folgenden Objekte enthält.
Message-Objekt
Definiert eine Nachricht, die ein Client an einen Bot sendet oder von einem Bot empfängt.
Eigenschaft | type | BESCHREIBUNG |
---|---|---|
id | Zeichenfolge | ID, die die (von Direct Line zugewiesene) Nachricht eindeutig identifiziert. |
conversationId | Zeichenfolge | ID, die die Konversation identifiziert. |
created | Zeichenfolge | Datum und Uhrzeit, zu der die Nachricht erstellt wurde, ausgedrückt im ISO-8601-Format. |
from | Zeichenfolge | ID, die den Benutzer identifiziert, der der Absender der Nachricht ist. Wenn Sie eine Nachricht erstellen, sollten Clients diese Eigenschaft auf eine stabile Benutzer-ID festlegen. Obwohl Direct Line eine Benutzer-ID zuweist, wenn kein Wert angegeben ist, führt dies in der Regel zu unerwartetem Verhalten. |
text | Zeichenfolge | Der Text der Nachricht, die vom Benutzer an den Bot oder vom Bot an den Benutzer gesendet wird. |
channelData | Objekt (object) | Ein Objekt mit kanalspezifischem Inhalt. Einige Kanäle bieten Features, die zusätzliche Informationen erfordern, die nicht mithilfe des Anlagenschemas dargestellt werden können. Legen Sie für diese Fälle diese Eigenschaft auf den kanalspezifischen Inhalt fest, wie in der Dokumentation des Kanals definiert. Diese Daten werden zwischen Client und Bot unverändert gesendet. Diese Eigenschaft muss entweder auf ein komplexes Objekt festgelegt oder leer gelassen werden. Legen Sie sie nicht auf eine Zeichenfolge, Zahl oder einen anderen einfachen Typ fest. |
images | string[] | Array von Zeichenfolgen, das die URL(s) für die Bilder in der Nachricht enthält. In einigen Fällen können Zeichenfolgen in diesem Array relative URLs sein. Wenn eine Zeichenfolge in diesem Array nicht mit "http" oder "https" beginnt, wird die Zeichenfolge vorgestellt, https://directline.botframework.com um die vollständige URL zu bilden. |
attachments | Attachment[] | Array von Attachment-Objekten, die die in der Nachricht enthaltenen Anlagen ohne Bilder darstellen. Jedes Objekt im Array enthält eine url -Eigenschaft und eine contentType -Eigenschaft. In Nachrichten, die ein Client von einem Bot erhält, kann die url -Eigenschaft möglicherweise manchmal eine relative URL angeben. Für jeden url Eigenschaftswert, der nicht mit "http" oder "https" beginnt, wird die Zeichenfolge vorgestellt https://directline.botframework.com , um die vollständige URL zu bilden. |
Das folgende Beispiel zeigt ein Message-Objekt, das alle möglichen Eigenschaften enthält. In den meisten Fällen beim Erstellen einer Nachricht muss der Client nur die from
Eigenschaft und mindestens eine Inhaltseigenschaft (ztext
. B. , , images
attachments
channelData
oder ).
{
"id": "CuvLPID4kDb|000000000000000004",
"conversationId": "CuvLPID4kDb",
"created": "2016-10-28T21:19:51.0357965Z",
"from": "examplebot",
"text": "Hello!",
"channelData": {
"examplefield": "abc123"
},
"images": [
"/attachments/CuvLPID4kDb/0.jpg?..."
],
"attachments": [
{
"url": "https://example.com/example.docx",
"contentType": "application/vnd.openxmlformats-officedocument.wordprocessingml.document"
},
{
"url": "https://example.com/example.doc",
"contentType": "application/msword"
}
]
}
MessageSet-Objekt
Definiert einen Satz von Nachrichten.
Eigenschaft | type | BESCHREIBUNG |
---|---|---|
messages | Message[] | Array von Message-Objekten. |
watermark | Zeichenfolge | Maximales Wasserzeichen von Nachrichten innerhalb des Satzes. Ein Client kann den watermark -Wert verwenden, um die letzte beim Abrufen von Nachrichten vom Bot angezeigte Nachricht anzugeben. |
Attachment-Objekt
Definiert eine Anlage ohne Bilder.
Eigenschaft | type | BESCHREIBUNG |
---|---|---|
contentType | Zeichenfolge | Der Medientyp des Inhalts der Anlage. |
url | Zeichenfolge | Die URL für den Inhalt der Anlage. |
Conversation-Objekt
Definiert eine Direct Line-Konversation.
Eigenschaft | type | BESCHREIBUNG |
---|---|---|
conversationId | Zeichenfolge | ID, die Konversation, für die das angegebene Token gültig ist, eindeutig identifiziert. |
token | Zeichenfolge | Token, das für die angegebene Konversation gültig ist. |
expires_in | number | Die Anzahl der Sekunden bis zum Ablauf des Tokens. |
Error-Objekt
Definiert einen Fehler.
Eigenschaft | type | BESCHREIBUNG |
---|---|---|
code | Zeichenfolge | Fehlercode Einer der folgenden Werte: MissingProperty, MalformedData, NotFound, ServiceError, Internal, InvalidRange, NotSupported, NotAllowed, BadCertificate. |
Nachricht | Zeichenfolge | Eine Beschreibung des Fehlers. |
statusCode | number | Statuscode. |
ErrorMessage-Objekt
Fehlernutzlast einer standardisierten Nachricht.
Eigenschaft | type | BESCHREIBUNG |
---|---|---|
error | Fehler | Ein Error-Objekt mit Informationen zum Fehler. |