问题标签 [web-chat]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
149 浏览

botframework - 您可以在用户消息出现在网络聊天之前呈现用户消息吗?

对于 MS Botframework 网络聊天,有没有办法在网络聊天中呈现之前拦截用户消息并进行更改?

0 投票
1 回答
90 浏览

botframework - ServiceNow 上的 BOT 框架示例 12 实现

我正在使用sample12在 ServiceNow 页面上创建一个最小化的网络聊天。使用示例 12 并构建相同的示例,我能够将其导入到 ServiceNow 并到达它出现在新 UI 页面上的位置。但是有两个问题 1)CORS 2)对 BOT 的身份验证没有发生。在此处输入图像描述

另外,我该如何处理身份验证?

我使用以下过程来托管页面

有任何想法吗 ?这种嵌入(如下所示)对我们有用。但是我们需要在 servicenow 上进行最小化的网络聊天

准备好

0 投票
1 回答
147 浏览

web-chat - 是否可以使用 onclick 方法填充网络聊天中的输入栏

我正在尝试向用户显示热门问题列表,当他们单击它们时,我希望他们填充输入栏和/或通过直接连接将消息发送到机器人。

我尝试使用 ReactDOM.getRootNode() 并跟踪输入节点并设置 .value 属性,但这不会填充该字段。我假设有某种形式的验证可以防止这种情况发生。

此外,如果我控制台记录输入节点,然后将其保存为控制台屏幕中的全局变量,我可以通过这种方式更改值,但实际上无法发送消息,按回车键或发送箭头什么也不做。虽然SuggestedActions 选项似乎适用于这个特定的应用程序,但我不能在这个用例中使用它。

这是我试图用来查找节点的函数,所选选项按预期工作,但我无法以可用的方式更改值。

我希望用户单击一个<p>更改 selectedOption 值的元素,并让该选择填充输入栏和/或通过直接连接向机器人发送该消息。我想要完成的事情

0 投票
0 回答
50 浏览

botframework - 如何在 Azure 机器人网络聊天控件中保持聊天?

我有一个场景,我想在任何机器人的上下文中呈现机器人网络聊天。1. 如何让网络聊天控件中的对话出现在多个频道(团队、Outlook 等)上。2. 如何在网络聊天控件中访问聊天以进行持久化?

0 投票
1 回答
729 浏览

javascript - Change font of suggested actions buttons in webchat control

I try to change the font of the "suggested actions"-button similar on how it is shown in this example for changing the font of the bubble text: https://github.com/Microsoft/BotFramework-WebChat/blob/master/SAMPLES.md

In the example they change the fontFamily of the "textContent" element.

I tried to pass something like this:

But I'm not a css hero, so any help is appreciated

0 投票
0 回答
107 浏览

c# - ChannelData 正在返回 null

我使用 botframework v4 创建了一个 Web 应用程序机器人,并将其与使用 Iframe 的 Web 应用程序集成。我想访问机器人所在页面的当前 url。

我尝试了反向通道机制,但未能从 ChannelData 中的服务器端获取任何值。我有脚本标签src="https://cdn.botframework.com/botframework-webchat/latest/botchat.js" > 在头标签和 iframe iframe id="chatBot" src=' https://webchat.botframework .com/embed/EdgewellSampleBot?s=xxx ' style='min-width: 400px; 宽度:100%;min-height: 500px;'> 在 body 标记内并在页面加载时调用getUrl()

0 投票
1 回答
565 浏览

botframework - 自定义网络聊天背景图片

我正在尝试制作自己的聊天机器人,但不确定如何将背景图像更改为我自己的 jpg。

我试图将代码放在<body>里面和里面,styleOptions但我的方法都不起作用。

下面是我的html文件:

先感谢您!

0 投票
1 回答
368 浏览

node.js - 无法在 createDirectLine(botframework 网络聊天)中成功传递 Javascript 变量,导致 403 错误

每个网络聊天会话,我从与https://webchat.botframework.com/api/tokens交谈的 restify 服务中检索一个令牌。我使用直接密码来获取令牌。令牌被正确检索。当我手动使用令牌(通过在 html 中输入)时,网络聊天会呈现。当我在函数中传递 Javascript 变量时,我无法创建直线。一些指导表示赞赏。一种解决方法是在 html 中使用秘密,但我宁愿不这样做

我尝试了多种语法来传递变量:window.WebChat.createDirectLine({ webChatToken }) or (webChatToken) or ({ webChatToken }) or (token: webChatToken) and ({ token: webChatToken })

唯一有效的方法是在 html 中手动输入令牌。

我使用我的 index.js(对于示例机器人)中已有的 restify 服务器来侦听和处理令牌请求:

以及 html 和 Javascript 代码中的网络聊天客户端。在此示例中,它与 restify 服务器的本地实例通信。

我期待一个有效的网络聊天客户端。在 chrome dev 扩展中,我看到“POST https://directline.botframework.com/v3/directline/conversations 403 (Forbidden)。directline api 的相应响应:

{“错误”:{“代码”:“BadArgument”,“消息”:“无效的令牌或秘密”}}

0 投票
1 回答
495 浏览

node.js - Bot Framework Webchat 无法从 Node.js restify 服务器(在 Azure 上)获取令牌:CORS 策略:不存在“Access-Control-Allow-Origin”标头

要启动 Bot Framework 网络聊天客户端,我需要从运行在 Azure 中的 restify 服务器“获取”一个令牌。服务器从https://webchat.botframework.com/api/tokens获取令牌(使用我的秘密)。最后一部分工作正常。第一部分没有。我没有设法让网络聊天客户端接受来自 restify 服务器的响应。离线(本地主机)工作正常。当服务器在线运行(Azure 中的节点)时,我得到:

CORS 策略阻止从源“ https://mydomainname.com ”获取“ https://mybot.azurewebsites.net/api/token ”的访问权限:不存在“Access-Control-Allow-Origin”标头在请求的资源上。

在 chrome 的开发工具中,我可以看到在本地主机上运行 restify 服务器,我得到了一个 access-control-allow-origin 和一个 access-control-expose-header。在 Node(在 Azure 中)上运行时,我只得到 access-control-expose-header。

我已经尝试了什么(没有好的结果):

  1. 为 restify 服务器实现 cors 中间件
  2. 使用 Express 代替 restify
  3. 手动将标头添加到响应中: res.send(token, { 'Access-Control-Allow-Origin': '*' })
  4. 在 Cors middelware 的(受信任的)来源列表中指定域名
    1. 【解决方案】在运行restify服务的azure app服务中,将运行调用javascript的域名添加到已获批准的来源列表中。

我当前的代码(使用 Cors 中间件)

重置服务器

网络聊天客户端

在此代码片段中,客户端正在与本地主机上运行的服务器通信。这行得通。一旦我们与托管在 Azure 上的服务器通信,它就不再工作了(似乎是由于 cors)

有人对如何解决这个问题有任何想法吗?

0 投票
2 回答
1028 浏览

redux - BotFramework WebChat - 示例 #14 - Redux 商店的中间件?

我将通过提到我对 React 和 Redux 都是新手来作为这个问题的开头......

我正在使用 BotFramework-WebChat 示例中的示例 #14。

https://github.com/microsoft/BotFramework-WebChat/tree/master/samples/14.customization-piping-to-redux

此外,为了通过管道传递 Redux 操作活动以更改 UI,我还想包括侦听“DIRECT_LINE/CONNECT_FULFILLED”然后使用“webchat/join”有效负载分派“WEB_CHAT/SEND_EVENT”的中间件,以便我可以显示欢迎信息。

我尝试将 dispatchIncomingActivityMiddleware.js 修改为如下所示:

不用说,它不起作用。我认为这是因为现在所有操作都被分派到第二个应用程序 Redux 商店而不是 Web Chat Redux 商店。我的问题是,我如何让它两者兼得?有没有办法将某些操作分派到应用程序 Redux 商店,并将其他操作分派到网络聊天商店?还有另一种方法可以实现这一目标吗?