«Если рабочий хочет хорошо выполнять свою работу, он должен сначала заточить свои инструменты» — Конфуций, «Аналитики Конфуция. Лу Лингун»
титульная страница > программирование > Документация, которая вызывает API прямой линии с Axios in React Native

Документация, которая вызывает API прямой линии с Axios in React Native

Опубликовано в 2025-04-14
Просматривать:690

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

В этом документе подробно описывается использование API Microsoft Direct Line в нативном приложении React, используя JavaScript, Axios и WebSocket для связи с агентом Copilot Bot.

]
]

] Предварительные условия

]

, прежде чем продолжить, убедитесь, что следующее:

]

1. Секрет прямой линии: получить секрет прямой линии от Coilot Chat Bot.

]

2. React Native Development Environment: установите рабочий нативный проект React.

]

3. Установлена ​​библиотека Axios: добавить Axios в зависимости вашего проекта, используя NPM Установленные Axios или пряжу добавить Axios.

]

4. Поддержка WebSocket: Убедитесь, что API WebSocket совместим с вашей средой приложения.

5. Базовые знания: знакомство с JavaScript, реагируйте нативные и Restful API.


]

] Оглавление

]
    ]
  1. Authentication

  2. Generating Token

  3. освежает токен

  4. ]
  5. Запуск разговора

  6. Reconneducting Country

  7. отправка деятельности в Bot

    ]
  8. Окончание разговора

  9. Мониторинг статуса подключения и повторное соединение

  10. ]
  11. ссылки

  12. ]
  13. ]

    ]

    ] 1. Аутентификация
  14. ]
API прямой строки требует секрета для аутентификации. Получить секрет из портала службы Azure Bot.
]

]

] 2. генерирование токена

]

токены генерируются с использованием секрета, чтобы инициировать безопасную связь.
]

пример кода:

]

] импорт Axios из 'Axios'; const generatetoken = async (secret) => { const url = 'https://directline.botframework.com/v3/directline/tokens/generate'; пытаться { const response = await axios.post (url, {}, { Заголовки: { Авторизация: `носитель $ {секрет}`, }, }); return response.data.token; } catch (error) { console.error ('ошибка генерирует токен:', ошибка); бросить ошибку; } }; ]
]

] 3. Обновление токена
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 refreshtoken = async (token) => { const url = 'https://directline.botframework.com/v3/directline/tokens/refresh'; пытаться { const response = await axios.post (url, {}, { Заголовки: { Авторизация: `носитель $ {token}`, }, }); return response.data.token; } catch (error) { console.error ('Ошибка освежающего токена:', ошибка); бросить ошибку; } }; ]
]

] 4. Начать разговор
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 startConversation = async (token) => { const url = 'https://directline.botframework.com/v3/directline/conversations'; пытаться { const response = await axios.post (url, {}, { Заголовки: { Авторизация: `носитель $ {token}`, }, }); return response.data; } catch (error) { Console.Error («Исследование ошибки: ', ошибка); бросить ошибку; } }; ]
]

] 5. Восстановление разговора
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;
    }
};
Если соединение потеряно, вы можете воссоединиться, используя SurnegID и WebSocket.

пример кода:

]

] const ReconnectConversation = async (singleId, token) => { const url = `https://directline.botframework.com/v3/directline/conversations/$ {waterid}? watermark = 0`; пытаться { const response = wait axios.get (url, { Заголовки: { Авторизация: `носитель $ {token}`, }, }); return response.data; } catch (error) { console.error ('ошибка повторно подключение к разговору:', ошибка); бросить ошибку; } }; ]
]

] 6. Отправка деятельности в бот
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;
    }
};
Отправить пользовательские сообщения или действия Bot.
]

пример кода:

]

] const SendActivity = async (singleId, token, activity) => { const url = `https://directline.botframework.com/v3/directline/conversations/$ {seargitid}/actions`; пытаться { const response = wata axios.post (url, activity, { Заголовки: { Авторизация: `носитель $ {token}`, }, }); return response.data; } catch (error) { Console.Error ('Ошибка отправки действий:', ошибка); бросить ошибку; } }; ]
]

] 7. Получение деятельности от бота
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;
    }
};
используйте WebSocket, чтобы прослушать ответы бота в режиме реального времени.
]

пример кода:

]

] const connectWebSocket = (Streamurl, onMessage) => { const socket = new WebSocket (Streamurl); socket.onopen = () => { console.log ('websocket connection установлено.'); }; socket.onmessage = (event) => { const data = json.parse (event.data); console.log ('Сообщение получено:', data); onmessage (data.activities); }; socket.onerror = (erry) => { console.error ('websocket error:', error); }; socket.onclose = (event) => { console.warn ('websocket connection закрыто:', событие); }; вернуть гнездо; }; ]
]

] 8. Завершение разговора
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;
    }
};
явно заканчивает разговор, прекратив общение.
]

Примечание: API прямой строки не требует явного вызова API, чтобы «закончить» разговор.

]

] 9. Мониторинг состояния соединения и повторное соединение

]

мониторинг статуса WebSocket и отступление к опросу, если отключено.
]

пример кода:

]

] const monitornection = (ocket, sharkbacktopolling) => { socket.onclose = () => { console.warn ('websocket connection закрыто. Возвращение к опросам.'); SwarkbackTopolling (); }; }; Const pollforActivities = async (singleId, token) => { const url = `https://directline.botframework.com/v3/directline/conversations/$ {seargitid}/actions`; пытаться { const response = wait axios.get (url, { Заголовки: { Авторизация: `носитель $ {token}`, }, }); return response.data.activities; } catch (error) { Console.Error ('Ошибка ошибки для действий:', ошибка); бросить ошибку; } }; ]
]

] 10. Ссылки
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;
    }
};
]
документация Microsoft Direct Line API

]

websocket api
  • axios документация
  • реагировать нативную документацию
  • ]
  • ] Заключение
  • ]
  • Этот документ предоставляет полное руководство по интеграции API прямой линии в нативное приложение React с использованием Axios и WebSocket. Следуйте изложенным шагам для аутентификации, управления разговорами и надежно обрабатывать связь с агентом Copilot Agent Bot.
]

]

]
Заявление о выпуске Эта статья воспроизводится по адресу: https://dev.to/vivekyadav200988/technical-documentation-using-direct-line-api-in-a-react-tanative-pplication-with-oxios-k1o?1, если есть какие-либо нарушения, пожалуйста, свяжитесь с исследованием[email protected], чтобы Delete It.
Последний учебник Более>

Изучайте китайский

Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.

Copyright© 2022 湘ICP备2022001581号-3