„Wenn ein Arbeiter seine Arbeit gut machen will, muss er zuerst seine Werkzeuge schärfen.“ – Konfuzius, „Die Gespräche des Konfuzius. Lu Linggong“
Titelseite > Programmierung > Dokumentation, die direkte Linien -API mit Axios in React Native aufruft

Dokumentation, die direkte Linien -API mit Axios in React Native aufruft

Gepostet am 2025-04-14
Durchsuche:744

Documentation: Using Direct Line API in a React Native Application with Axios

In diesem Dokument werden die Verwendung der Microsoft Direct -Zeilen -API in einer nativen Reaktionsanwendung unter Verwendung von JavaScript, Axios und WebSocket zur Kommunikation mit einem Copilot Agent Bot.


Voraussetzungen

Vor dem Fortfahren stellen Sie sicher, dass Folgendes vorhanden ist:

1. Direktzeilengeheimnis: Erhalten Sie das direkte Zeilengeheimnis aus dem Coilot -Chat -Bot.

2. Umgebung der nativen Entwicklung von React Native: Richten Sie ein funktionierendes React Native Project ein.

3. Axios Bibliothek installiert: Fügen Sie Axios Ihren Projektabhängigkeiten mit NPM Axios oder Garn hinzu. Fügen Sie Axios hinzu.

4. WebSocket -Unterstützung: Stellen Sie sicher, dass die WebSocket -API mit Ihrer Anwendungsumgebung kompatibel ist.

5. Grundkenntnisse: Vertrautheit mit JavaScript, React Native und Restful Apis.


Inhaltsverzeichnis

  1. authentication

  2. token generieren

  3. das token

    aktualisieren
  4. starten Sie die Konversation
  5. verbinden Sie die Konversation
  6. .

    Senden Sie Aktivität an den Bot
  7. Empfangen Sie Aktivitäten aus dem Bot
  8. beenden die Conversation
  9. Verbindungsstatusüberwachung und Wiederverbindung
  10. referenzen

1. Authentifizierung

Direct Line API erfordert ein Geheimnis, um sich zu authentifizieren. Erhalten Sie das Geheimnis aus dem Azure Bot Service Portal.

2. Token erzeugen

Token werden unter Verwendung des Geheimnisses generiert, um eine sichere Kommunikation zu initiieren.

Code Beispiel:

import axios from 'axios';

const generateToken = async (secret) => {
    const url = 'https://directline.botframework.com/v3/directline/tokens/generate';
    try {
        const response = await axios.post(url, {}, {
            headers: {
                Authorization: `Bearer ${secret}`,
            },
        });
        return response.data.token;
    } catch (error) {
        console.error('Error generating token:', error);
        throw error;
    }
};
import axios aus 'axios'; const Generatetoken = Async (Secret) => { const url = 'https://directline.botframework.com/v3/directline/tokens/generate'; versuchen { const response = warte axios.post (url, {}, {{ Header: { Autorisierung: `Bearer $ {Secret}`,, }, }); return response.data.token; } catch (error) { console.Error ('Fehlergenerierung Token:', Fehler); Fehler werfen; } };

3.. Das Token erfrischen

Token haben eine begrenzte Lebensdauer. Aktualisieren Sie sie, bevor sie ablaufen.

Code Beispiel:

import axios from 'axios';

const generateToken = async (secret) => {
    const url = 'https://directline.botframework.com/v3/directline/tokens/generate';
    try {
        const response = await axios.post(url, {}, {
            headers: {
                Authorization: `Bearer ${secret}`,
            },
        });
        return response.data.token;
    } catch (error) {
        console.error('Error generating token:', error);
        throw error;
    }
};
const reproshtoken = async (token) => { const url = 'https://directline.botframework.com/v3/directline/tokens/refresh'; versuchen { const response = warte axios.post (url, {}, {{ Header: { Autorisierung: `Bearer $ {Token}`, }, }); return response.data.token; } catch (error) { console.Error ('Fehler erfrischend Token:', Fehler); Fehler werfen; } };

4.. Beginnen Sie das Gespräch

initiieren Sie ein Gespräch mit dem Bot mit dem Token.

Code Beispiel:

import axios from 'axios';

const generateToken = async (secret) => {
    const url = 'https://directline.botframework.com/v3/directline/tokens/generate';
    try {
        const response = await axios.post(url, {}, {
            headers: {
                Authorization: `Bearer ${secret}`,
            },
        });
        return response.data.token;
    } catch (error) {
        console.error('Error generating token:', error);
        throw error;
    }
};
const startConveration = async (token) => { const url = 'https://directline.botframework.com/v3/directline/conversations'; versuchen { const response = warte axios.post (url, {}, {{ Header: { Autorisierung: `Bearer $ {Token}`, }, }); Rückgabeantwort.Data; } catch (error) { console.Error ('Fehler mit der Konversation:', Fehler); Fehler werfen; } };

5. das Gespräch wieder anschließen

Wenn die Verbindung verloren geht, können Sie mithilfe der ConversationID und WebSocket wieder verbinden.

Code Beispiel:

import axios from 'axios';

const generateToken = async (secret) => {
    const url = 'https://directline.botframework.com/v3/directline/tokens/generate';
    try {
        const response = await axios.post(url, {}, {
            headers: {
                Authorization: `Bearer ${secret}`,
            },
        });
        return response.data.token;
    } catch (error) {
        console.error('Error generating token:', error);
        throw error;
    }
};
const wiederinctconversation = async (ConversationId, Token) => { const url = `https://directline.botframework.com/v3/directline/conversations/$ {ConversationID}? Watermark = 0`; versuchen { const response = warte axios.get (url, { Header: { Autorisierung: `Bearer $ {Token}`, }, }); Rückgabeantwort.Data; } catch (error) { console.Error ('Fehler wieder anschließen:', Fehler); Fehler werfen; } };

6. Aktivität an den Bot senden

Benutzernachrichten oder Aktivitäten an den Bot senden.

Code Beispiel:

import axios from 'axios';

const generateToken = async (secret) => {
    const url = 'https://directline.botframework.com/v3/directline/tokens/generate';
    try {
        const response = await axios.post(url, {}, {
            headers: {
                Authorization: `Bearer ${secret}`,
            },
        });
        return response.data.token;
    } catch (error) {
        console.error('Error generating token:', error);
        throw error;
    }
};
const sendActivity = async (ConversationId, Token, Aktivität) => { const url = `https://directline.botframework.com/v3/directline/conversations/$ {ConversationID}/Aktivitäten`; versuchen { const response = erwartet Axios.post (URL, Aktivität, {{ Header: { Autorisierung: `Bearer $ {Token}`, }, }); Rückgabeantwort.Data; } catch (error) { console.Error ('Fehlersenden Aktivität:', Fehler); Fehler werfen; } };

7. Erhalten Sie Aktivität vom Bot

Verwenden Sie WebSocket, um in Echtzeit auf Bot -Antworten zu hören.

Code Beispiel:

import axios from 'axios';

const generateToken = async (secret) => {
    const url = 'https://directline.botframework.com/v3/directline/tokens/generate';
    try {
        const response = await axios.post(url, {}, {
            headers: {
                Authorization: `Bearer ${secret}`,
            },
        });
        return response.data.token;
    } catch (error) {
        console.error('Error generating token:', error);
        throw error;
    }
};
const ConnectWebsocket = (Streamurl, OnMessage) => { const socket = new WebSocket (Streamurl); socket.onopen = () => { console.log ('WebSocket -Verbindung hergestellt.'); }; Socket.onMessage = (Ereignis) => { const data = json.parse (Ereignis.Data); console.log ('Nachricht empfangen:', Daten); OnMessage (Daten.aktivitäten); }; socket.onError = (error) => { console.Error ('WebSocket -Fehler:', Fehler); }; socket.onclose = (event) => { console.warn ('WebSocket -Verbindung geschlossen:', Ereignis); }; Rückgabe der Steckdose; };

8. Beenden Sie das Gespräch

Beenden Sie explizit ein Gespräch, indem Sie die Kommunikation einstellen.

Hinweis: Direkte Zeilen -API erfordert keinen expliziten API -Anruf, um eine Konversation zu "beenden".

9. Verbindungsstatusüberwachung und Wiederverbindung

Monitor WebSocket -Status und Fallback bei der Abfrage, wenn sie getrennt sind.

Code Beispiel:

import axios from 'axios';

const generateToken = async (secret) => {
    const url = 'https://directline.botframework.com/v3/directline/tokens/generate';
    try {
        const response = await axios.post(url, {}, {
            headers: {
                Authorization: `Bearer ${secret}`,
            },
        });
        return response.data.token;
    } catch (error) {
        console.error('Error generating token:', error);
        throw error;
    }
};
const monitorConnection = (Socket, FallbackTopolling) => { socket.onclose = () => { console.warn ('WebSocket -Verbindung geschlossen. Zurück in die Umfrage zurückfallen.'); FallbackTopolling (); }; }; const polfForActivities = asynchronisch (ConversationId, Token) => { const url = `https://directline.botframework.com/v3/directline/conversations/$ {ConversationID}/Aktivitäten`; versuchen { const response = warte axios.get (url, { Header: { Autorisierung: `Bearer $ {Token}`, }, }); Return Response.Data.aktivitäten; } catch (error) { console.Error ('Fehlerabfragen für Aktivitäten:', Fehler); Fehler werfen; } };

10. Referenzen
  • Microsoft Direct Line API -Dokumentation
  • webocket api
  • axios documentation
  • React native documentation

Abschluss

Dieses Dokument enthält eine vollständige Anleitung zur Integration von Direktleitungs -API in eine reag -native Anwendung mit Axios und WebSocket. Befolgen Sie die umrissenen Schritte zum Authentifizieren, Verwalten von Gesprächen und die Kommunikation zuverlässig mit einem Copilot Agent Bot.

Freigabeerklärung Dieser Artikel ist reproduziert unter: https://dev.to/vivekyadav200988/technical-documentation-using-direct-line-api-in-a-react-native-anapplication-with-axios-k1o?1, wenn es eine Verletzung gibt, bitte kontaktieren Sie [email protected], um es zu löschen.
Neuestes Tutorial Mehr>

Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.

Copyright© 2022 湘ICP备2022001581号-3