Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Vous pouvez permettre à votre application cliente de communiquer avec votre bot à l’aide de Direct Line API 3.0. Direct Line API 3.0 utilise rest et JSON standard sur HTTPS.
Base de l'URI
Pour accéder à Direct Line API 3.0, utilisez l’une de ces URI de base pour toutes les demandes d’API :
Pour les bots globaux, utilisez
https://directline.botframework.comPour un bot régional, entrez l’URI suivant en fonction de la région sélectionnée :
Région Base de l'URI Europe https://europe.directline.botframework.comIndia https://india.directline.botframework.com
Tip
Une requête peut échouer si vous utilisez l’URI de base global d’un bot régional, car certaines requêtes peuvent dépasser les limites géographiques.
En-têtes
En plus des en-têtes de requête HTTP standard, une demande d’API Direct Line doit inclure un Authorization en-tête qui spécifie un secret ou un jeton pour authentifier le client qui émet la requête. Spécifiez l’en-tête Authorization au format suivant :
Authorization: Bearer SECRET_OR_TOKEN
Pour plus d’informations sur l’obtention d’un secret ou d’un jeton que votre client peut utiliser pour authentifier ses demandes d’API Direct Line, consultez Authentification.
Codes d’état HTTP
Le code d’état HTTP retourné avec chaque réponse indique le résultat de la requête correspondante.
| Code d’état HTTP | Meaning |
|---|---|
| 200 | La demande a abouti. |
| 201 | La demande a abouti. |
| 202 | La demande a été acceptée pour traitement. |
| 204 | La demande a réussi, mais aucun contenu n’a été retourné. |
| 400 | La demande a été incorrecte ou incorrecte. |
| 401 | Le client n’est pas autorisé à effectuer la demande. Souvent, ce code d’état se produit parce que l’en-tête Authorization est manquant ou mal formé. |
| 403 | Le client n’est pas autorisé à effectuer l’opération demandée. L’opération peut échouer pour les raisons suivantes.
|
| 404 | La ressource demandée n’a pas été trouvée. En règle générale, ce code d’état indique un URI de requête non valide. |
| 500 | Une erreur de serveur interne s’est produite dans le service Direct Line. |
| 502 | Le bot n’est pas disponible ou retourne une erreur. Il s’agit d’un code d’erreur courant. |
Note
Le code d’état HTTP 101 est utilisé dans le chemin de connexion WebSocket, bien que cela soit probablement géré par votre client WebSocket.
Errors
Toute réponse qui spécifie un code d’état HTTP dans la plage 4xx ou 5xx inclut un objet ErrorResponse dans le corps de la réponse qui fournit des informations sur l’erreur. Si vous recevez une réponse d’erreur dans la plage 4xx, inspectez l’objet ErrorResponse pour identifier la cause de l’erreur et résoudre votre problème avant de renvoyer la requête.
Note
Les codes d’état HTTP et les valeurs spécifiés dans la propriété à l’intérieur code de l’objet ErrorResponse sont stables. Les valeurs spécifiées dans la propriété à l’intérieur message de l’objet ErrorResponse peuvent changer au fil du temps.
Les extraits de code suivants montrent un exemple de requête et la réponse d’erreur résultante.
Requête
POST https://directline.botframework.com/v3/directline/conversations/abc123/activities
[detail omitted]
Response
HTTP/1.1 502 Bad Gateway
[other headers]
{
"error": {
"code": "BotRejectedActivity",
"message": "Failed to send activity: bot returned an error"
}
}
Opérations de jeton
Utilisez ces opérations pour créer ou actualiser un jeton qu’un client peut utiliser pour accéder à une seule conversation.
| Operation | Description |
|---|---|
| Générer un jeton | Générez un jeton pour une nouvelle conversation. |
| Jeton d’actualisation | Actualisez un jeton. |
Générer un jeton
Génère un jeton valide pour une conversation.
POST /v3/directline/tokens/generate
| Contenu | Description |
|---|---|
| Corps de la demande | Objet TokenParameters |
| Retour | Objet Conversation |
Actualiser le jeton
Actualise le jeton.
POST /v3/directline/tokens/refresh
| Contenu | Description |
|---|---|
| Corps de la demande | n/a |
| Retour | Objet Conversation |
Opérations de conversation
Utilisez ces opérations pour ouvrir une conversation avec votre bot et échanger des activités entre le client et le bot.
| Operation | Description |
|---|---|
| Démarrer la conversation | Ouvre une nouvelle conversation avec le bot. |
| Obtenir des informations sur la conversation | Obtient des informations sur une conversation existante. Cette opération génère une nouvelle URL de flux WebSocket qu’un client peut utiliser pour se reconnecter à une conversation. |
| Obtenir des activités | Récupère les activités du bot. |
| Envoyer une activité | Envoie une activité au bot. |
| Charger et envoyer des fichiers | Charge et envoie des fichiers en tant que pièces jointes. |
Lancer la conversation
Ouvre une nouvelle conversation avec le bot.
POST /v3/directline/conversations
| Contenu | Description |
|---|---|
| Corps de la demande | Objet TokenParameters |
| Retour | Objet Conversation |
Obtenir des informations sur la conversation
Obtient des informations sur une conversation existante et génère également une nouvelle URL de flux WebSocket qu’un client peut utiliser pour se reconnecter à une conversation. Vous pouvez éventuellement fournir le watermark paramètre dans l’URI de requête pour indiquer le message le plus récent vu par le client.
GET /v3/directline/conversations/{conversationId}?watermark={watermark_value}
| Contenu | Description |
|---|---|
| Corps de la demande | n/a |
| Retour | Objet Conversation |
Obtenir des activités
Récupère les activités du bot pour la conversation spécifiée. Vous pouvez éventuellement fournir le watermark paramètre dans l’URI de requête pour indiquer le message le plus récent vu par le client.
GET /v3/directline/conversations/{conversationId}/activities?watermark={watermark_value}
| Contenu | Description |
|---|---|
| Corps de la demande | n/a |
| Retour | Objet ActivitySet . La réponse contient watermark en tant que propriété de l’objet ActivitySet . Les clients doivent parcourir les activités disponibles en faisant avancer la watermark valeur jusqu’à ce qu’aucune activité ne soit retournée. |
Envoyer une activité
Envoie une activité au bot.
POST /v3/directline/conversations/{conversationId}/activities
| Contenu | Description |
|---|---|
| Corps de la demande | Objet Activity |
| Retour |
ResourceResponse qui contient une id propriété qui spécifie l’ID de l’activité envoyée au bot. |
Charger et envoyer des fichiers
Charge et envoie des fichiers en tant que pièces jointes. Définissez le userId paramètre dans l’URI de requête pour spécifier l’ID de l’utilisateur qui envoie la ou les pièces jointes.
POST /v3/directline/conversations/{conversationId}/upload?userId={userId}
| Contenu | Description |
|---|---|
| Corps de la demande | Pour une pièce jointe unique, renseignez le corps de la requête avec le contenu du fichier. Pour plusieurs pièces jointes, créez un corps de demande multipart qui contient une partie pour chaque pièce jointe, et également (éventuellement) une partie pour l’objet Activité qui doit servir de conteneur pour la ou les pièces jointes spécifiées. Pour plus d’informations, consultez Envoyer une activité au bot. |
| Retour |
ResourceResponse qui contient une id propriété qui spécifie l’ID de l’activité envoyée au bot. |
Note
Les fichiers chargés sont supprimés après 24 heures.
Schema
Le schéma Direct Line 3.0 inclut tous les objets définis par le schéma Bot Framework, ainsi que certains objets spécifiques à Direct Line.
Objet ActivitySet
Définit un ensemble d’activités.
| Propriété | Type | Description |
|---|---|---|
| activités | Activity[] | Tableau d’objets d’activité . |
| filigrane | string | Limite maximale des activités au sein de l’ensemble. Un client peut utiliser la watermark valeur pour indiquer le message le plus récent qu’il a vu lors de la récupération d’activités à partir du bot ou lors de lagénération d’une nouvelle URL de flux WebSocket. |
Objet Conversation
Définit une conversation Direct Line.
| Propriété | Type | Description |
|---|---|---|
| conversationId | string | ID qui identifie de manière unique la conversation pour laquelle le jeton spécifié est valide. |
| eTag | string | Un ETag HTTP (balise d’entité). |
| expires_in | Numéro | Nombre de secondes jusqu’à l’expiration du jeton. |
| referenceGrammarId | string | ID de la grammaire de référence pour ce bot. |
| streamUrl | string | URL du flux de messages de la conversation. |
| token | string | Jeton valide pour la conversation spécifiée. |
Objet TokenParameters
Paramètres de création d’un jeton.
| Propriété | Type | Description |
|---|---|---|
| eTag | string | Un ETag HTTP (balise d’entité). |
| trustedOrigins | chaîne de caractères[] | Origines approuvées à incorporer dans le jeton. |
| user | ChannelAccount | Compte d’utilisateur à incorporer dans le jeton. |
Activités
Pour chaque activité qu’un client reçoit d’un bot via Direct Line :
- Les cartes de pièce jointe sont conservées.
- Les URL pour les pièces jointes chargées sont masquées avec une liaison privée.
- La
channelDatapropriété est conservée sans modification.
Les clients peuvent recevoir plusieurs activités du bot dans le cadre d’un ActivitySet.
Lorsqu’un client envoie un Activity bot via Direct Line :
- La
typepropriété spécifie l’activité de type qu’elle envoie (généralement le message). - La
frompropriété doit être remplie avec un ID d’utilisateur, choisi par le client. - Les pièces jointes peuvent contenir des URL vers des ressources existantes ou des URL chargées via le point de terminaison de pièce jointe Direct Line.
- La
channelDatapropriété est conservée sans modification. - La taille totale de l’activité, lorsqu’elle est sérialisée au format JSON et chiffrée, ne doit pas dépasser 256 000 caractères. Nous vous recommandons de conserver les activités de moins de 150 000 ko. Si d’autres données sont nécessaires, envisagez de fractionner l’activité ou d’utiliser des pièces jointes.
Les clients peuvent envoyer une activité unique par requête.