Muistiinpano
Tämän sivun käyttö edellyttää valtuutusta. Voit yrittää kirjautua sisään tai vaihtaa hakemistoa.
Tämän sivun käyttö edellyttää valtuutusta. Voit yrittää vaihtaa hakemistoa.
Note
Tässä artikkelissa kuvataan ominaisuuksia, joita käytetään agenteissa tai agenttivirroissa, joita käytetään standardivaljastuksen voimalla.
Agenttipohja määrittää, miltä agentti näyttää käyttäjille. Voit mukauttaa pohjaa kahdella tavalla:
Mukauta oletuspohjaa käyttämällä sivustossasi JavaScriptiä ja CSS:ää. Tämän asetuksen avulla voit tehdä yksinkertaisia muutoksia.
Käytä mukautettua pohjaa, joka perustuu Bot Frameworkin verkkokeskustelupohjaan. Tämä asetus edellyttää kehityskokemusta ja tukee kattavaa mukauttamista.
Voit myös yhdistää mukautetun pohjan ja määrittää automaattisen keskustelun alun.
Voit muuttaa agentin nimeä ja kuvaketta portaalissa.
Kun olet julkaiset agentin, käyttäjät voivat käyttää sitä WWW-keskustelu-alustan kautta.
Tärkeää
Voit asentaa tähän artikkeliin sisältyvän mallikoodin ja käyttää sitä vain Copilot Studion kanssa käytettäväksi. Näytekoodilla on käyttöoikeus sellaisenaan, ja se jätetään kaikkien palvelutasosopimusten ja tukipalvelujen ulkopuolelle. Käytöstä aiheutuvat riskit ovat omalla vastuullasi.
Microsoft ei anna mitään suoria takuita, vakuutuksia tai ehtoja ja kiistää kaikki epäsuorat takuut, mukaan lukien takuut soveltuvuudesta kaupankäynnin kohteeksi, tiettyyn käyttötarkoitukseen tai oikeuksien rikkomattomuudesta.
Muuta agentin nimeä ja kuvaketta
Tärkeää
- Kun olet päivittänyt agentin kuvakkeen, uuden kuvakkeen ilmestyminen kaikkialle voi kestää jopa 24 tuntia.
- Jos agenttisi on yhdistetty asiakaspalveluun Omnichannel for Customer Service, Azure-portaalin rekisteröinnin Display-nimi-ominaisuus määrittää sen nimen.
- Jos agentti on tarkoitettu julkaistavaksi Teamsiin, tarkista kuvakkeiden vaatimukset Microsoft Teamsin kehittäjädokumentaatiosta.
Siirry agentin Yleiskatsaus-sivulle.
Valitse MuokkaaYksityiskohtien vierestä.
Muuta agentin nimeä ja kuvaketta haluamallasi tavalla.
Valitse Tallenna.
Oletuspohjan mukauttaminen (yksinkertainen)
Oletuspohjaa voi säätää JavaScriptin ja CSS:n avulla.
Ensiksi määritä, missä agenttialustan toteutat.
Kopioi HTML-mallikoodi tiedostoon, jonka nimi
index.htmlon . Voit käyttää myös HTML-try-it-editoria.<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <meta name="description" content="Contoso Web Chat Assistant" /> <title>Contoso Sample Web Chat Test</title> <script src="https://cdn.botframework.com/botframework-webchat/latest/webchat.js"></script> <script> let webChatInstance = null; let directLineUrl = null; // Replace with your token endpoint const tokenEndpoint = "<YOUR TOKEN ENDPOINT>"; const styleOptions = { "accent": "#0078D4", "autoScrollSnapOnPage": true, "autoScrollSnapOnPageOffset": 0, "avatarBorderRadius": "7%", "avatarSize": 31, "backgroundColor": "#e8e9eb", "botAvatarBackgroundColor": "#ffffff00", "botAvatarImage": "https://powercatexternal.blob.core.windows.net/creatorkit/Assets/ChatbotLogoBlue.png", "botAvatarInitials": "B", "bubbleAttachmentMaxWidth": 480, "bubbleAttachmentMinWidth": 250, "bubbleBackground": "#f0eded", "bubbleBorderColor": "#f5f5f5", "bubbleBorderRadius": 41, "bubbleBorderStyle": "solid", "bubbleBorderWidth": 1, "bubbleFromUserBackground": "#ebefff", "bubbleFromUserBorderColor": "#f5f5f5", "bubbleFromUserBorderRadius": 41, "bubbleFromUserBorderStyle": "solid", "bubbleFromUserBorderWidth": 1, "bubbleFromUserNubOffset": 0, "bubbleFromUserNubSize": 0, "bubbleFromUserTextColor": "#242424", "bubbleImageHeight": 10, "bubbleImageMaxHeight": 240, "bubbleImageMinHeight": 240, "bubbleMessageMaxWidth": 480, "bubbleMessageMinWidth": 120, "bubbleMinHeight": 50, "bubbleNubOffset": 0, "bubbleTextColor": "#242424", "emojiSet": true, "fontSizeSmall": "70%", "hideUploadButton": false, "messageActivityWordBreak": "break-word", "monospaceFont": "Consolas", "paddingRegular": 10, "paddingWide": 10, "primaryFont": null, "sendBoxBackground": "#e8e9eb", "sendBoxBorderTop": "solid 1px #808080", "sendBoxButtonColor": "#0078d4", "sendBoxButtonColorOnHover": "#006cbe", "sendBoxButtonShadeBorderRadius": 40, "sendBoxButtonShadeColorOnHover": "", "sendBoxHeight": 60, "sendBoxPlaceholderColor": "#171616", "sendBoxTextColor": "#2e2d2d", "showAvatarInGroup": "status", "spinnerAnimationHeight": 16, "spinnerAnimationPadding": 12, "spinnerAnimationWidth": 16, "subtleColor": "#000000FF", "suggestedActionBackgroundColor": "#006FC4FF", "suggestedActionBackgroundColorOnHover": "#0078D4", "suggestedActionBorderColor": "", "suggestedActionBorderRadius": 10, "suggestedActionBorderWidth": 1, "suggestedActionLayout": "flow", "suggestedActionTextColor": "#FFFFFFFF", "typingAnimationBackgroundImage": "url('https://wpamelia.com/wp-content/uploads/2018/11/ezgif-2-6d0b072c3d3f.gif')", "typingAnimationDuration": 5000, "typingAnimationHeight": 20, "typingAnimationWidth": 64, "userAvatarBackgroundColor": "#222222", "userAvatarImage": "https://avatars.githubusercontent.com/u/8174072?v=4&size=64", "userAvatarInitials": "U" }; const backgroundImage = ""; document.addEventListener('DOMContentLoaded', () => { const root = document.documentElement; root.style.setProperty('--primary-color', createGradient(styleOptions.accent)); root.style.setProperty('--header-textColor', styleOptions.suggestedActionTextColor); if (backgroundImage) { const webchatElement = document.getElementById('webchat'); webchatElement.style.backgroundImage = `url(${backgroundImage})`; webchatElement.style.backgroundSize = 'cover'; webchatElement.style.backgroundPosition = 'center'; webchatElement.style.backgroundRepeat = 'no-repeat'; const overlay = document.createElement('div'); overlay.className = 'webchat-overlay'; webchatElement.appendChild(overlay); } }); function createGradient(baseColor) { const r = parseInt(baseColor.slice(1, 3), 16); const g = parseInt(baseColor.slice(3, 5), 16); const b = parseInt(baseColor.slice(5, 7), 16); const lighterColor = `#${Math.min(255, r + 30).toString(16).padStart(2, '0')}${Math.min(255, g + 30).toString(16).padStart(2, '0')}${Math.min(255, b + 30).toString(16).padStart(2, '0')}`; const darkerColor = `#${Math.max(0, r - 30).toString(16).padStart(2, '0')}${Math.max(0, g - 30).toString(16).padStart(2, '0')}${Math.max(0, b - 30).toString(16).padStart(2, '0')}`; return `linear-gradient(135deg, ${lighterColor}, ${baseColor}, ${darkerColor})`; } const environmentEndPoint = tokenEndpoint.slice( 0, tokenEndpoint.indexOf("/powervirtualagents") ); const apiVersion = tokenEndpoint .slice(tokenEndpoint.indexOf("api-version")) .split("=")[1]; const regionalChannelSettingsURL = `${environmentEndPoint}/powervirtualagents/regionalchannelsettings?api-version=${apiVersion}`; function showChat() { const popup = document.getElementById("chatbot-popup"); const openButton = document.getElementById("open-chat"); popup.classList.add("visible"); openButton.classList.add("hidden"); } function hideChat() { const popup = document.getElementById("chatbot-popup"); const openButton = document.getElementById("open-chat"); popup.classList.remove("visible"); openButton.classList.remove("hidden"); } function createCustomStore() { return window.WebChat.createStore( {}, ({ dispatch }) => (next) => (action) => { if (action.type === "DIRECT_LINE/CONNECT_FULFILLED") { dispatch({ type: "DIRECT_LINE/POST_ACTIVITY", meta: { method: "keyboard" }, payload: { activity: { channelData: { postBack: true }, name: "startConversation", type: "event", }, }, }); } return next(action); } ); } async function restartConversation() { try { if (!directLineUrl) { console.error("DirectLine URL not initialized"); return; } const response = await fetch(tokenEndpoint); const conversationInfo = await response.json(); if (!conversationInfo.token) { throw new Error("Failed to get conversation token"); } const newDirectLine = window.WebChat.createDirectLine({ domain: `${directLineUrl}v3/directline`, token: conversationInfo.token, }); const webchatElement = document.getElementById("webchat"); webChatInstance = window.WebChat.renderWebChat( { directLine: newDirectLine, styleOptions, store: createCustomStore(), }, webchatElement ); } catch (err) { console.error("Failed to restart conversation:", err); } } async function initializeChat() { try { const response = await fetch(regionalChannelSettingsURL); const data = await response.json(); directLineUrl = data.channelUrlsById.directline; if (!directLineUrl) { throw new Error("Failed to get DirectLine URL"); } const conversationResponse = await fetch(tokenEndpoint); const conversationInfo = await conversationResponse.json(); if (!conversationInfo.token) { throw new Error("Failed to get conversation token"); } const directLine = window.WebChat.createDirectLine({ domain: `${directLineUrl}v3/directline`, token: conversationInfo.token, }); webChatInstance = window.WebChat.renderWebChat( { directLine, styleOptions, store: createCustomStore(), }, document.getElementById("webchat") ); } catch (err) { console.error("Failed to initialize chat:", err); } } initializeChat(); </script> <style> :root { --primary-gradient: var(--primary-color); --chat-width: 450px; --chat-height: 520px; --header-height: 56px; --border-radius: 16px; --transition-speed: 0.3s; } * { margin: 0; padding: 0; box-sizing: border-box; font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif; } body { min-height: 100vh; background-color: #f3f4f6; } #chatbot-popup { display: none; position: fixed; bottom: 32px; right: 32px; width: var(--chat-width); height: var(--chat-height); background: white; border-radius: var(--border-radius); box-shadow: 0 18px 40px -5px rgba(0, 0, 0, 0.2), 0 15px 20px -5px rgba(0, 0, 0, 0.1); overflow: hidden; opacity: 0; transform-origin: bottom right; transform: scale(0.95); transition: all var(--transition-speed) ease-in-out; z-index: 999; } #chatbot-popup.visible { display: block; opacity: 1; transform: scale(1); } #chatbot-header { background: var(--primary-color); padding: 16px 20px; height: var(--header-height); display: flex; justify-content: space-between; align-items: center; color: var(--header-textColor); } .header-title { display: flex; align-items: center; gap: 12px; font-size: 16px; font-weight: 500; } .header-buttons { display: flex; gap: 12px; align-items: center; } .icon-button { background: none; border: none; color: var(--header-textColor); cursor: pointer; padding: 8px; border-radius: 8px; display: flex; align-items: center; justify-content: center; transition: all 0.2s ease; } .icon-button:hover { color: var(--header-textColor); background: rgba(255, 255, 255, 0.1); } .icon-button:focus { outline: 2px solid rgba(255, 255, 255, 0.5); outline-offset: 2px; } #webchat { height: calc(100% - var(--header-height)); background-color: #f9fafb; position: relative; } .webchat-overlay { position: absolute; top: 0; left: 0; right: 0; bottom: 0; background: rgba(255, 255, 255, 0.85); pointer-events: none; z-index: 1; } #webchat > div { position: relative; z-index: 2; } #webchat .webchat__basic-transcript__content { white-space: pre-wrap !important; word-break: break-word !important; } #webchat .webchat__bubble__content { padding: 8px 12px !important; } #webchat .webchat__bubble { max-width: 85% !important; margin: 8px !important; } #webchat .webchat__basic-transcript__content ul, #webchat .webchat__basic-transcript__content ol, #webchat .webchat__bubble__content ul, #webchat .webchat__bubble__content ol { padding-left: 24px !important; margin: 8px 0 !important; list-style-position: outside !important; } #webchat .webchat__basic-transcript__content li, #webchat .webchat__bubble__content li { margin: 4px 0 !important; padding-left: 4px !important; } #open-chat { position: fixed; bottom: 32px; right: 32px; width: 64px; height: 64px; border-radius: 50%; background: var(--primary-gradient); border: none; cursor: pointer; display: flex; align-items: center; justify-content: center; box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1); transition: all var(--transition-speed) ease-in-out; z-index: 998; } #open-chat.hidden { opacity: 0; transform: scale(0.95) translateY(10px); pointer-events: none; } #open-chat:hover { transform: translateY(-4px); box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1); } #open-chat:focus { outline: 3px solid rgba(79, 70, 229, 0.5); outline-offset: 2px; } #open-chat svg { width: 28px; height: 28px; color: white; transition: transform 0.2s ease; } .main-content { max-width: 1200px; margin: 0 auto; padding: 48px 24px; } .main-content h1 { font-size: 36px; color: #111827; text-align: center; } .main-content p { font-size: 18px; color: #4b5563; line-height: 1.6; margin-bottom: 48px; text-align: center; max-width: 800px; margin-left: auto; margin-right: auto; } .content-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 32px; margin-bottom: 32px; } .content-box { background: linear-gradient(135deg, #e6e6e6, #c4c4c4, #9f9f9f); padding: 32px; border-radius: 12px; box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06); min-height: 300px; display: flex; flex-direction: column; justify-content: center; align-items: center; text-align: center; position: relative; overflow: hidden; } .content-box::before { content: ''; position: absolute; top: 0; left: 0; right: 0; height: 4px; } .content-box.featured { grid-column: span 2; min-height: 350px; background: linear-gradient(135deg, #e6e6e6, #c4c4c4, #9f9f9f); color: #000000; } .content-box h2 { font-size: 24px; margin-bottom: 16px; position: relative; } .content-box p { font-size: 16px; color: #6b7280; margin-bottom: 0; } .content-box.featured p { color: #000000; } @media (max-width: 768px) { .content-grid { grid-template-columns: 1fr; } .content-box.featured { grid-column: span 1; } .main-content { padding: 24px 16px; } .main-content h1 { font-size: 28px; } #chatbot-popup { width: 100%; height: 100%; bottom: 0; right: 0; border-radius: 0; } } </style> </head> <body> <div class="main-content"> <h1>Header</h1> <p>Lorem ipsum dolor sit amet consectetur adipiscing elit. Quisque faucibus ex sapien vitae pellentesque sem placerat.</p> <div class="content-grid"> <div class="content-box featured"> <h2>Featured Content</h2> <p>Primary content area with custom styling and gradient background</p> </div> <div class="content-box"> <h2>Section One</h2> <p>Content box with minimal design</p> </div> <div class="content-box"> <h2>Section Two</h2> <p>Another content section with consistent styling</p> </div> </div> </div> <div id="chatbot-popup" role="complementary" aria-label="Chat Assistant"> <div id="chatbot-header"> <div class="header-title"> <svg class="chat-icon" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" > <path d="M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z" ></path> </svg> <span>Contoso Assistant</span> </div> <div class="header-buttons"> <button class="icon-button" id="restart-button" onclick="restartConversation()" aria-label="Restart Conversation" > <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" > <path d="M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8" ></path> <path d="M3 3v5h5"></path> </svg> </button> <button class="icon-button" id="close-button" onclick="hideChat()" aria-label="Close Chat" > <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" > <line x1="18" y1="6" x2="6" y2="18"></line> <line x1="6" y1="6" x2="18" y2="18"></line> </svg> </button> </div> </div> <div id="webchat" role="main"></div> </div> <button id="open-chat" onclick="showChat()" aria-label="Open Chat Assistant" > <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" > <path d="M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z" ></path> </svg> </button> </body> </html>Korvaa
index.htmlkohdassa :const tokenEndpoint = "<YOUR TOKEN ENDPOINT>";tunnuksen päätepisteen avulla.
Avaa
index.htmlmodernissa selaimessa, kuten Microsoft Edge.Testaa agentti.
Jos agentti ei vastaa:
- Varmista, että agentti on julkaistu.
- Tarkista tunnuksen päätepisteen arvo.
- Vahvista, että tunnuksen päätepiste tulee näkyviin :n
=jälkeen lainausmerkeillä ympäröitynä".
Tunnuspäätepisteen noutaminen agentille
Jos haluat mukauttaa pohjaa tai sitten oletuspohjaa tai mukautettua pohjaa, johon muodostat yhteyden, tarvitset tunnuksen päätepisteen agentillesi.
Valitse Asetukset-kohdassaKanavat.
Valitse Sähköposti.
Valitse Tunnuspäätepiste-kohdan vierestäKopioi.
Agenttikuvakkeen, taustavärin ja nimen mukauttaminen
Objektin styleOptions avulla voit määrittää esimääritettyjä tyylejä.
Lisätietoja defaultStyleOptions.js-tiedoston mukauttamisesta ja linkittämisestä on artikkelissa WWW-keskustelu mukauttaminen.
Asiakaspalvelijan kuvakkeen vaihtaminen
index.htmlPäivitä tiedosto seuraavalla mallikoodilla:const styleOptions = { "accent": "#00809d", "botAvatarBackgroundColor": "#FFFFFF", "botAvatarImage": "https://learn.microsoft.com/azure/bot-service/v4sdk/media/logo_bot.svg", "botAvatarInitials": "BT", "userAvatarImage": "https://avatars.githubusercontent.com/u/661465", "userAvatarInitials": "U" };Korvaa molemmat avatar-kuvat yrityksesi kuvilla. Jos sinulla ei ole kuvan URL-osoitetta, käytä sen sijaan Base64-koodattua kuvamerkkijonoa.
Taustavärin muuttaminen
Lisää
index.html-elementtibackgroundColor-määritelmääsistyleOptions:const styleOptions = { "backgroundColor": "lightgray", // ... };Vaihda
backgroundColormihin tahansa väriin. Käytä standardeja CSS-värinimiä, RGB-arvoja tai HEX-arvoja.
Agentin nimen muuttaminen
Päivitä tiedoston
<h1>otsikkotekstiindex.htmlseuraavalla koodilla:<body> <div id="banner"> <h1><img src="contoso-agent.png"> Contoso agent name</h1> </div> <!-- ... -->Muuta teksti agentin haluamaksesi nimeksi. Voit myös lisätä kuvan, mutta saatat joutua muotoilemaan sen, jotta se sopii otsikkoosioon.
Keskustelupohjan mukauttaminen ja isännöiminen (lisäasetukset)
Voit yhdistää Copilot Studio -agenttisi mukautettuun pohjaan, jota isännöit erillisenä verkkosovelluksena. Tämä vaihtoehto toimii parhaiten, jos sinun täytyy upottaa räätälöity iFrame useille verkkosivuille.
Note
Mukautetun pohjan isännöinti edellyttää ohjelmistokehitystä. Nämä ohjeet on tarkoitettu kokeneille IT-ammattilaisille, kuten IT-järjestelmänvalvojille ja kehittäjille, joilla on paljon ymmärrystä kehittäjätyökaluista, apuohjelmista ja integroiduista kehitysympäristöistä .
Aloita yhdestä seuraavista mukautetuista malleilla, jotka on luotu toimimaan Copilot Studion kanssa:
Full bundle on mukautettu pohja, joka pystyy näyttämään kaiken Copilot Studion monipuolisen sisällön. Esimerkiksi:
Location ja tiedoston lataaminen on mukautettu pohja, joka pystyy noutamaan käyttäjän sijainnin ja lähettämään sen Copilot Studio -agentille. Esimerkiksi:
Vaihtoehtoisesti voit kokeilla muita sample WWW-keskustelu -piirtoalustaa Bot Frameworkista.
Kuten oletuskankaassa, voit säätää omaa kangasta styleSetOptions . Kaikki mukautettavat ominaisuudet luetellaan kohdassa defaultStyleOptions.js. Lisätietoja siitä, mitä voit mukauttaa, on artikkelissa WWW-keskustelu mukauttaminen.
Tukiyhteyden määrityksen tukeminen mukautetussa kaaviossa
Kun vakioympäristön agentti tarvitsee käyttäjän yhteyden, keskustelupohja vastaanottaa yhteyden edellyttävän mukautuvan kortin. Mukautetun pohjan on käsiteltävä kortin Action.OpenUrlDialog-toiminto. Ilman tätä käsittelyä Connect-kohdan valitseminen ei avaa fokusoitua yhteysikkunaa.
Avaa yhteysikkuna
- Rekisteröi
Action.OpenUrlDialoghahmonnetuissa mukautuvissa korteissa ja lue senurl-ominaisuus. Hyväksy vain absoluuttinenhttp://- taihttps://-URL. - Päätä, voiko kohteen alkuperään luottaa, ennen kuin avaat sen. Luota vain alkuperään, jota itse hallitset tai jonka tietoturvatiimisi on tarkistanut ja lisännyt sallittujen luetteloon.
- Avaa URL-osoite suoraan käyttäjän valinnasta kohteen
window.open(url, "_blank", "popup")avulla. Ikkunan avaaminen käyttäjän toiminnon seurauksena vähentää mahdollisuutta, että selain estää sen. - Jätä luotetun kohteen kohdan
window.openwindowFeatures-argumentissa poisnoopenerjanoreferrer, jotta yhteysikkuna voi palauttaa tuloksen kohteeseenwindow.opener. Ota kaikissa muissa kohteissa käyttöönnoopener,noreferrer, äläkä hyväksy paluuviestiä. - Säilytä palautettu
Windowviite ja yhteyden edellyttävän kortin aktiviteettitunnus. Jos ponnahdusikkuna on estetty tai käyttäjä sulkee sen ilman kelvollista tulosta, pidä Jatka tai muu palautustoiminto saatavilla. Älä tulkitse ikkunan sulkemista onnistuneeksi yhteyden muodostamiseksi.
Mukautuvat kortit JavaScript SDK ei toteuta Action.OpenUrlDialog oletusarvoisesti. Rekisteröi toiminto kohteen SerializationContext.actionRegistry kautta tai käsittele toiminto suoraan omistamassasi muodostimessa. Varaominaisuus Action.OpenUrl voi avata kohteen asiakasohjelmissa, jotka eivät tue dialogitoimintoa, mutta varaominaisuus ei voi palauttaa ponnahdusikkunan tulosta.
Tärkeää
Yhteysikkuna, jolla on kohteen window.opener käyttöoikeus, voi siirtyä keskustelusivulla tai vaikuttaa siihen muulla tavalla. Tarkista kohde ja sen uudelleenohjaukset verkkoturvallisuustiimisi kanssa. Älä anna luotettavan kohteen ohjata epäluotettavalle sivustolle siten, että opener-käyttöoikeus säilyy.
Jos upotat Bot Frameworkin verkkokeskustelun, sen kohteen Action.OpenUrlDialog käsittely avaa yhteysikkunan. Saman alkuperän ikkunoihin luotetaan oletuksena. Määritä tarkistetussa eri alkuperää olevassa kohteessa styleOptions.callURLActionTrustedOrigin tarkkaan sallittuun alkuperään. Erottele useat alkuperät pilkuilla. Voit myös asettaa callURLActionPopupWindowHeight ja callURLActionPopupWindowWidth. Älä lisää alkuperää, jota et ole tarkistanut.
Jatka onnistuneen yhteyden muodostamisen jälkeen (esikatselu)
[Tämä osa on esijulkaisuasiakirja, ja se voi muuttua.]
Tärkeää
Tämä artikkeli sisältää Microsoft Copilot Studion esiversiota koskevia ohjeita. Tiedot voivat muuttua.
Esiversiotoimintoja ei ole tarkoitettu tuotantokäyttöön, ja niiden toiminnot voivat olla rajoitettuja. Nämä toiminnot ovat käytettävissä ennen virallista julkaisua, jotta voit käyttää niitä aikaisessa vaiheessa ja antaa palautetta.
Jos olet luomassa tuotantovalmista agenttia, katso lisätietoja kohdasta Microsoft Copilot Studion yleiskuvaus.
Luotettu yhteysikkuna voi lähettää valmistumisen tuloksen keskustelusivulla kohteen window.opener.postMessage kanssa. Käytä keskustelusivun tarkkaa alkuperää kohdealkuperänä. Älä käytä merkkiä *.
Chat-sivulla:
Jos
window.openpalautti arvonnull, älä hyväksy viestiä kyseisellä yrityskerralla. Muussa tapauksessa hyväksy viesti vain, kunevent.sourcevastaa säilytettyä ponnahdusikkunan viitettä jaevent.originvastaa odotettua alkuperää.Varmista, että viestin tiedoissa on
type: "postback"ja arvo agentin tai suorituspalvelun odottamassa muodossa.Seuraava esimerkki lähettää agentille viestin, jonka tekstinä on "hello-world". Se ei näy chat-käyttöliittymässä.
{ "type": "postback", "value": { hello: "World!" } }Seuraava esimerkki lähettää viestin JSONilla
{ hello: "World!" }agentille.{ "type": "postback", "value": { hello: "World!" } }Lähetä hyväksytty arvo Bot Frameworkin postback-mekanismin kautta. Käytä säilytettyä toiminnon tunnusta kohteena
replyToId. Älä hyväksy vastauksen aktiviteetin tunnusta ponnahdusikkunasta.Hyväksy korkeintaan yksi tulos jokaista ponnahdusikkunaa kohden. Poista tapahtuman kuuntelutoiminto ja tyhjennä sen ajastin sen jälkeen, kun tulos hyväksytään, virheellisesti muodostettu viesti hylätään luotetusta ponnahdusikkunasta, havaitaan ponnahdusikkunan sulkeminen tai aikaraja saavutetaan. WWW-keskustelu käyttää viiden minuutin rajoitusta.
Koordinoi agentin tai suorituspalvelun kanssa, jotta voidaan korreloida takaisinlähetys alkuperäiseen yhteyttä vaativaan vuorovaikutukseen. Jatka tätä kiertoa vain kerran.
Selaimen viestinvälitys toimii parhaalla mahdollisella tavalla. Ponnahdusikkunoiden estot, siirtyminen, eri alkuperän omaavan avaustoiminnon käytäntö tai suljettu ikkuna voivat estää automaattisen jatkamisen. Pidä Jatka-palautuspolku tai jokin muu palautuspolku saatavilla, äläkä tulkitse puuttuvaa viestiä onnistumiseksi.
Mukautetun pohjan käyttöönotto
Jos haluat isännöidä mukautettua pohjaa, ota kaikki tiedostot käyttöön verkkosovelluksessa.