Koneksi bot ke Web Chat
BERLAKU UNTUK: SDK v4
Saat Anda membuat bot dengan Azure, saluran Web Chat secara otomatis dikonfigurasi untuk Anda. Saluran Web Chat mencakup kontrol Web Chat, yang menyediakan kemampuan bagi pengguna untuk berinteraksi dengan bot langsung di halaman web.
Saluran Web Chat berisi semua yang Anda butuhkan untuk menyematkan kontrol Web Chat di halaman web. Untuk melakukannya, Anda akan mendapatkan kunci rahasia bot Lalu menyematkan kontrol di halaman web.
Prasyarat
- Akun Azure. Jika Anda belum memilikinya, buat akun gratis sebelum memulai.
- Bot yang sudah ada diterbitkan ke Azure.
Pertimbangan keamanan Web Chat
Saat Anda menggunakan autentikasi Azure AI Bot Service dengan Web Chat, ada beberapa pertimbangan keamanan penting yang harus Anda ingat. Untuk informasi selengkapnya, lihat Pertimbangan keamanan.
Menyematkan kontrol Web Chat di halaman web
Gambar berikut menunjukkan komponen yang terlibat saat menyematkan kontrol Web Chat di halaman web.
Penting
Gunakan Direct Line (dengan autentikasi yang ditingkatkan) untuk mengurangi risiko keamanan saat menyambungkan ke bot menggunakan kontrol Web Chat. Untuk informasi selengkapnya, lihat Autentikasi yang disempurnakan Direct Line.
Dapatkan kunci rahasia bot Anda
- Buka portal Azure dan buka bot Anda.
- Di bawah Pengaturan, pilih Saluran. Lalu pilih Web Chat.
- Halaman Web Chat akan terbuka. Pilih Situs Default dari daftar Situs.
- Salin kunci Rahasia pertama dan kode Sematkan.
Opsi penyematan pengembangan
Opsi 1 - Tukar rahasia Anda dengan token, dan hasilkan sematan
Ini adalah opsi yang baik jika:
- Anda dapat menjalankan permintaan server-ke-server untuk menukar rahasia obrolan web Anda dengan token sementara
- Anda ingin mempersulit pengembang lain untuk menyematkan bot Anda di situs web mereka
Menggunakan opsi ini tidak akan sepenuhnya mencegah pengembang lain menyematkan bot Anda di situs web mereka, tetapi itu memang menyulitkan mereka untuk melakukannya.
Untuk menukar rahasia Anda dengan token dan menghasilkan sematkan:
Terbitkan permintaan GET ke URL pertukaran token dan berikan rahasia obrolan web Anda melalui
Authorization
header. HeaderAuthorization
menggunakanBotConnector
skema dan menyertakan rahasia Anda.- Untuk bot global, URL pertukaran token adalah
https://webchat.botframework.com/api/tokens
. - Untuk bot regional, masukkan url berikut sesuai dengan wilayah yang dipilih:
Wilayah URL Pertukaran Token Eropa https://europe.webchat.botframework.com/api/tokens India https://india.webchat.botframework.com/api/tokens - Untuk bot global, URL pertukaran token adalah
Respons terhadap permintaan GET Anda akan berisi token (dikelilingi dengan tanda kutip) yang dapat digunakan untuk memulai percakapan dengan merender kontrol Web Chat. Token hanya berlaku untuk satu percakapan; untuk memulai percakapan lain, Anda perlu membuat token baru.
Dalam kode Tersemat yang Anda salin dari saluran Web Chat sebelumnya, ubah
s=
parameter menjadit=
dan ganti "YOUR_SECRET_HERE" dengan token Anda.
Catatan
Token akan diperbarui secara otomatis sebelum kedaluwarsa.
Contoh permintaan
Untuk bot global:
requestGET https://webchat.botframework.com/api/tokens
Authorization: BotConnector YOUR_SECRET_HERE
Untuk bot regional:
requestGET
## Europe region
https://europe.webchat.botframework.com/api/tokens
## India region
https://india.webchat.botframework.com/api/tokens
Authorization: BotConnector YOUR_SECRET_HERE
Catatan
Untuk Azure Government, URL pertukaran token berbeda.
requestGET https://webchat.botframework.azure.us/api/tokens
Authorization: BotConnector YOUR_SECRET_HERE
Contoh tanggapan
"IIbSpLnn8sA.dBB.MQBhAFMAZwBXAHoANgBQAGcAZABKAEcAMwB2ADQASABjAFMAegBuAHYANwA.bbguxyOv0gE.cccJjH-TFDs.ruXQyivVZIcgvosGaFs_4jRj1AyPnDt1wk1HMBb5Fuw"
Contoh kode HTML
<!DOCTYPE html>
<html>
<body>
<iframe id="chat" style="width: 400px; height: 400px;" src=''></iframe>
</body>
<script>
var xhr = new XMLHttpRequest();
xhr.open('GET', "https://webchat.botframework.com/api/tokens", true);
xhr.setRequestHeader('Authorization', 'BotConnector ' + 'YOUR SECRET HERE');
xhr.send();
xhr.onreadystatechange = processRequest;
function processRequest(e) {
if (xhr.readyState == 4 && xhr.status == 200) {
var response = JSON.parse(xhr.responseText);
document.getElementById("chat").src="https://webchat.botframework.com/embed/<botname>?t="+response
}
}
</script>
</html>
Opsi 2 - Sematkan kontrol obrolan web di situs web Anda menggunakan rahasia
Gunakan opsi ini jika Anda ingin mengizinkan pengembang lain untuk dengan mudah menyematkan bot Anda ke situs web mereka.
Peringatan
Dengan opsi ini, kunci rahasia saluran Web Chat diekspos di halaman web klien. Gunakan opsi ini hanya untuk tujuan pengembangan dan bukan di lingkungan produksi.
Untuk menyematkan bot Anda di halaman web dengan menentukan rahasia dalam kode Tersemat:
Salin kode Tersemat dari saluran Web Chat dalam portal Azure (dijelaskan dalam Dapatkan kunci rahasia bot Anda di atas).
Dalam kode Tersemat tersebut, ganti "YOUR_SECRET_HERE" dengan nilai Kunci rahasia yang Anda salin dari halaman yang sama.
Opsi penyematan produksi
Jaga rahasia Anda tetap tersembunyi, tukar rahasia Anda dengan token, dan hasilkan sematkan
Opsi ini tidak mengekspos kunci rahasia saluran Web Chat di halaman web klien.
Klien perlu memberikan token untuk berbicara dengan bot. Untuk mempelajari tentang perbedaan antara rahasia dan token dan untuk memahami risiko yang terkait dengan penggunaan rahasia, lihat Autentikasi Direct Line.
Halaman web klien berikut menunjukkan cara menggunakan token dengan Web Chat. Jika Anda memiliki bot regional atau Azure Gov, sesuaikan URL dari publik ke pemerintah.
<!DOCTYPE html>
<html>
<head>
<script src="https://cdn.botframework.com/botframework-webchat/latest/webchat.js"></script>
</head>
<body>
<h2>Web Chat bot client using Direct Line</h2>
<div id="webchat" role="main"></div>
<script>
// "styleSet" is a set of CSS rules which are generated from "styleOptions"
const styleSet = window.WebChat.createStyleSet({
bubbleBackground: 'rgba(0, 0, 255, .1)',
bubbleFromUserBackground: 'rgba(0, 255, 0, .1)',
botAvatarImage: '<your bot avatar URL>',
botAvatarInitials: 'BF',
userAvatarImage: '<your user avatar URL>',
userAvatarInitials: 'WC',
rootHeight: '100%',
rootWidth: '30%'
});
// After generated, you can modify the CSS rules
styleSet.textContent = {
...styleSet.textContent,
fontFamily: "'Comic Sans MS', 'Arial', sans-serif",
fontWeight: 'bold'
};
const res = await fetch('https:<YOUR_TOKEN_SERVER/API>', { method: 'POST' });
const { token } = await res.json();
window.WebChat.renderWebChat(
{
directLine: window.WebChat.createDirectLine({ token }),
userID: 'WebChat_UserId',
locale: 'en-US',
username: 'Web Chat User',
locale: 'en-US',
// Passing 'styleSet' when rendering Web Chat
styleSet
},
document.getElementById('webchat')
);
</script>
</body>
</html>
Untuk contoh tentang cara membuat token, lihat: