问题标签 [botkit]

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 回答
372 浏览

javascript - 错误:错误:过时的 RTM 连接,正在关闭 RTM;rtm_close 事件未触发

我创建了一个基本的机器人并将其保持连接。一段时间后,它给出了错误Stale RTM connection, closing RTM。该rtm_close事件未触发并且该进程仍在运行,那么为什么机器人停止侦听。

如何处理生产中的此类问题?为什么rtm_close没有触发事件?

环境:当前版本:“版本”:“0.5.4”(来自 botkit package.json) 操作系统:macOS Sierra(版本:10.12.4)

简单代码:

在此处输入图像描述

0 投票
1 回答
323 浏览

botkit - HowdyAI 的 Botkit 可以监听附件内容吗?

尝试使用BotKit让自定义集成对 3rd 方集成做出反应。第 3 方集成仅通过作为附件的回复进行通信。

有没有办法让我的自定义集成“听到”附件?如果它确实存在,我无法在文档中找到它。

0 投票
2 回答
661 浏览

botframework - BotKit Slack Bot 到 Microsoft Teams Bot

我最近通过 BotKit 工具包构建了一个 Slack 机器人,现在希望能够从 Slack 扩展到许多其他服务。基本上,我正在阅读https://venturebeat.com/2016/11/02/how-bots-will-work-on-microsoft-teams/ 它指出

“集成意味着 Microsoft Bot Framework 用户将能够为 Slack 制作机器人,而 Botkit 用户将能够将他们的机器人带到其他平台,如 Telegram、Kik、Twilio 和 Skype。(在更改之前,Botkit 只能为 Slack 和 Facebook Messenger 制作机器人。)”

但是,我不清楚如何实现这一点。你介意向我解释这个或指出我正确的方向吗?据我了解,这应该是一个简单的过程,让我的 slackbot 基本上在 Microsoft Teams 或 Skype 或任何服务中运行。

谢谢!

0 投票
1 回答
7166 浏览

http - 该死 - 斜杠命令不起作用(错误消息:`503_service_error`

我按照本教程:https : //api.slack.com/tutorials/easy-peasy-slash-commands 为斜线命令创建了一个简单的 slack 应用程序。

该应用程序在我的服务器上运行在 VPN 上的端口 1336 下。此服务器(包括 IP - 显然)无法在 VPN 之外访问。

按照上述教程,Slack 应用程序配置(在 slack 网站上)需要两件事:

  • OAuth 的重定向 URL
  • 斜杠命令的请求 URL

到目前为止我做了什么:

  • 启动 slack 应用程序后,转到[IP_OF_SERVER]:1336/login并为我的团队授权该应用程序。

  • OAuth 重定向 URL(设置为:)[IP_OF_SERVER]:1336/oauth工作正常。

请记住,斜杠命令的请求 URL 当前设置为:http://[IP_OF_SERVER]:1336/slack/receive

  • 使用斜杠命令测试应用程序返回Darn – that slash command didn't work (error message: 503_service_error. Manage the command at [name_of_application].

但是,如果我使用 localtunnel(如教程中所述),它绝对可以正常工作......

lt --port 1336 --subdomain myslashcommand

你的网址是:https ://myslashcommand.localtunnel.me

如果我将上面的(https://myslashcommand.localtunnel.me)设置为斜杠命令的请求 URL(https://myslashcommand.localtunnel.me/slack/receive),那么它会按预期工作!

问题是防火墙不断阻止localtunnel.me:[different port number every time]连接并使 localtunel 命令崩溃,这意味着我无法将 localtunnel 用于我的生产应用程序。

它在教程链接中提到:

此时的一个常见问题是 URL 不安全:要么它不使用 HTTPS,要么无法验证 HTTPS 连接的安全性。如果您按照上面的建议使用 localtunnel,这应该不是问题。但是一旦你部署了你的斜杠命令,你应该确定你的托管服务提供了一个有效的 HTTPS 连接——但是我们可以在后面的教程中担心这个。

这可能是我的问题的原因吗?从外观上看,该应用程序仅通过 HTTP 运行。我该如何解决这个问题?这与我的服务器 IP 未向公众公开这一事实有关吗?有必要吗?如果我的 OAuth 和登录 URL 有效,那么这有关系吗?

0 投票
1 回答
1602 浏览

javascript - 将 botkit 连接到我的服务 restful api

我在本地安装了 botkit,并且与 slack 完美配合。现在,我想将机器人与外部 restful api 连接起来,例如:

人类:你连接了多少客户?机器人:机器人在内部对我的服务的其余 api 执行查询,然后回答 Bot:连接了 21 个客户端。

有什么建议吗?

0 投票
2 回答
1156 浏览

node.js - 回发的 Bot 框架事件?

我的问题:

我有一张带有回发按钮的自适应卡片,其值为“thisIsMyPostback”。现在,我想按照自己的意愿处理这个回发。

问题是这个回发也可以被输入以达到相同的结果。换句话说,单击按钮并直接向我的机器人“thisIsMyPostback”发送消息会导致相同的结果。

有没有办法将回发消息与“message_received”分开?这样,用户直接发送“thisIsMyPostback”消息不会导致与单击按钮相同的结果。

谢谢!

0 投票
1 回答
80 浏览

facebook - Botkit with Watson 和 Facebook - 为什么要打开隧道?无法在 Bluemix 中启动?

我正在尝试使用 Facebook 的 Botkit 来实现 Watson 对话服务。所有的论文,包括这个https://github.com/watson-developer-cloud/botkit-middleware/tree/master/examples/multi-bot都表明要在我的本地计算机上建立一个隧道来发布应用程序。我不明白为什么有必要。不能像使用 Watson 应用程序一样使用 Bluemix,而是使用 Botkit 应用程序?有人在云中实现了这一切吗?

非常感谢!

0 投票
0 回答
260 浏览

javascript - 在node js中按顺序做任务

我想按顺序完成这些任务,但结果不按顺序,就像 2 3 10 9 1 4 6 5 7 8

该 API 来自NodeJS工具包电报

.then() 将解决我的问题,但我对 for 循环有问题 .then() 在这里不起作用

这不是真正的代码,var x 是一个复杂的对象,A,B,C,D 与 x 相关,我只是简化了代码

0 投票
1 回答
188 浏览

node.js - API.AI 中间件与 Botkit Facebook 无响应

我正在尝试在 Facebook Messenger 上将 API.AI 中间件添加到我的 Botkit。

但是,它不会从 API.AI 返回任何内容。

有人用 Botkit 成功实现 API.AI 吗?

PS 这里是 API.AI 中间件https://github.com/abeai/botkit-middleware-apiai

0 投票
1 回答
152 浏览

node.js - 沃森对话 - 松弛机器人,文本格式化

我在格式化 slackbot 响应时遇到问题。slactbot 通过 botkit ( https://github.com/watson-developer-cloud/botkit-middleware ) 与 watson 对话连接。非常感谢

我的最终目标是将 JSONArray 格式化为响应中的列表。但我找不到任何关于它的信息。我什至不能输出带有 '\n' 或 '\\n' 的换行符。在 Watson 仪表板上,我会输出如下内容:

我注意到您购买的是:$e_list.join('\n')