Dokumen ini memperincikan penggunaan Microsoft Direct Line API dalam aplikasi React Native, menggunakan JavaScript, Axios dan WebSocket untuk komunikasi dengan Copilot Agent Bot.
Sebelum meneruskan, pastikan perkara berikut disediakan:
1. Rahsia Talian Terus: Dapatkan rahsia Talian Terus daripada Bot sembang Coilot.
2. Persekitaran Pembangunan React Native: Sediakan projek React Native yang berfungsi.
3. Pustaka Axios Dipasang: Tambahkan Axios pada kebergantungan projek anda menggunakan npm install axios atau yarn add axios.
4. Sokongan WebSocket: Pastikan API WebSocket serasi dengan persekitaran aplikasi anda.
5. Pengetahuan Asas: Kebiasaan dengan JavaScript, React Native dan API RESTful.
Pengesahan
Menjana Token
Menyegarkan Token
Memulakan Perbualan
Menyambung Semula Perbualan
Menghantar Aktiviti ke Bot
Menerima Aktiviti daripada Bot
Tamatkan Perbualan
Pemantauan Status Sambungan dan Penyambungan Semula
Rujukan
API Talian Langsung memerlukan rahsia untuk mengesahkan. Dapatkan rahsia daripada portal Azure Bot Service.
Token dijana menggunakan rahsia untuk memulakan komunikasi selamat.
Contoh Kod:
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; } };
Token mempunyai jangka hayat yang terhad. Muat semulanya sebelum tamat tempoh.
Contoh Kod:
const refreshToken = async (token) => { const url = 'https://directline.botframework.com/v3/directline/tokens/refresh'; try { const response = await axios.post(url, {}, { headers: { Authorization: `Bearer ${token}`, }, }); return response.data.token; } catch (error) { console.error('Error refreshing token:', error); throw error; } };
Mulakan perbualan dengan bot menggunakan token.
Contoh Kod:
const startConversation = async (token) => { const url = 'https://directline.botframework.com/v3/directline/conversations'; try { const response = await axios.post(url, {}, { headers: { Authorization: `Bearer ${token}`, }, }); return response.data; } catch (error) { console.error('Error starting conversation:', error); throw error; } };
Jika sambungan terputus, anda boleh menyambung semula menggunakan conversationId dan WebSocket.
Contoh Kod:
const reconnectConversation = async (conversationId, token) => { const url = `https://directline.botframework.com/v3/directline/conversations/${conversationId}?watermark=0`; try { const response = await axios.get(url, { headers: { Authorization: `Bearer ${token}`, }, }); return response.data; } catch (error) { console.error('Error reconnecting conversation:', error); throw error; } };
Hantar mesej atau aktiviti pengguna kepada bot.
Contoh Kod:
const sendActivity = async (conversationId, token, activity) => { const url = `https://directline.botframework.com/v3/directline/conversations/${conversationId}/activities`; try { const response = await axios.post(url, activity, { headers: { Authorization: `Bearer ${token}`, }, }); return response.data; } catch (error) { console.error('Error sending activity:', error); throw error; } };
Gunakan WebSocket untuk mendengar respons bot dalam masa nyata.
Contoh Kod:
const connectWebSocket = (streamUrl, onMessage) => { const socket = new WebSocket(streamUrl); socket.onopen = () => { console.log('WebSocket connection established.'); }; socket.onmessage = (event) => { const data = JSON.parse(event.data); console.log('Message received:', data); onMessage(data.activities); }; socket.onerror = (error) => { console.error('WebSocket error:', error); }; socket.onclose = (event) => { console.warn('WebSocket connection closed:', event); }; return socket; };
Tamatkan perbualan secara eksplisit dengan menghentikan komunikasi.
Nota: Direct Line API tidak memerlukan panggilan API yang jelas untuk "menamatkan" perbualan.
Pantau status WebSocket dan sandaran kepada tinjauan pendapat jika terputus sambungan.
Contoh Kod:
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; } };
Dokumen ini menyediakan panduan lengkap untuk menyepadukan API Direct Line ke dalam aplikasi React Native menggunakan Axios dan WebSocket. Ikut langkah yang digariskan untuk mengesahkan, mengurus perbualan dan mengendalikan komunikasi dengan pasti dengan Copilot Agent Bot.
Atas ialah kandungan terperinci Dokumentasi: Menggunakan Direct Line API dalam Aplikasi React Native dengan Axios. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!