问题标签 [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.
amazon-ec2 - 如何在 ec2 上托管 botkit 机器人/应用程序?
这里有没有人在 ec2 实例上托管了一个 botkit 应用程序?如果是,你能告诉我怎么做吗?我看到了在故障/heroku 上托管它的选项,但我想在 ec2 上托管它。
apache - 无效的命令“PassengerAppRoot”,可能拼写错误或由未包含在服务器配置中的模块定义
我已经按照在 Linux/Unix 生产服务器上为 Node.js 应用程序 + Red Hat 6 / CentOS 6 (with RPM) 安装Passenger + Apache 中给出的每个安装步骤进行安装,一切正常,但是当我尝试在虚拟主机中配置我的子域时在使用 WHM 托管我的 botkit 机器人的 centos 6 服务器上,我收到此错误:
“/usr/local/apache/bin/httpd”命令(进程 27088)结束时报告错误号 1。在文件 /usr/local/apache/conf/includes/post_virtualhost_2.conf.tmp 的第 9 行检测到配置问题:无效命令“PassengerAppRoot”,可能拼写错误或由服务器配置中未包含的模块定义 --- /usr/ local/apache/conf/includes/post_virtualhost_2.conf.tmp --- 3 ServerAlias subdomain.mydomain.com 4 ServerAdmin adminserver@mydomain.com 5 6 7 # 告诉Apache和Passenger你的应用程序的代码目录在哪里 8 DocumentRoot /var/www /MyApp/Code/public 9 ===> PassengerAppRoot /var/www/MyApp/Code <=== 10 #Error logging 11 ErrorLog logs/subdomain-error_log 12 CustomLog logs/subdomain-access_log common 13 14 # 告诉乘客你的app 是一个节点。
这是我的配置:
我试图删除配置并通过 .htaccess 传递:
但它仍然无法正常工作。我最近检查并在验证乘客时收到以下消息:
问题是我不知道卸载 /usr/local/rvm/gems/ruby-2.4.1/bin/passenger 的步骤是什么。
javascript - Botkit Slack Bot 不听新的 js 文件(托管在 azure 上)
我们在 azure 上托管了一个 botkit 机器人,遵循他们的指导方针并从这里克隆到 repo:https ://github.com/howdyai/botkit-starter-slack
然后,我尝试在技能文件夹中添加一个新的 js 文件,如下所示:
机器人与我们的松弛通道正确通信,我们可以键入基本的、已包含的命令并获得响应。但是,当我键入“新事件”以尝试访问我刚刚制作的这个新脚本时,什么也没有发生。
在 azure 上本地托管 botkit 机器人时,我没有找到关于如何添加新技能脚本的很好的文档,以便 slack 机器人拾取它们......我什至尝试包装以上所有内容(减去 var Botkit 和 var 控制器线) 在 module.exports = function(controller) 中,但仍然没有响应。
任何人都可以就我如何在技能文件夹中的新 js 文件中进行自定义对话并让我已经连接的 slack 机器人实际监听它提供一些指导吗?
node.js - 使用 botkit、expressjs 的 Slack 交互式按钮配置和工作流程?
我想知道 slack 中的交互式按钮如何在 botkit 的帮助下工作,任何人都展示了一个具有上述组合的简单示例,这对我更有帮助。
node.js - 在 AWS 上使用 Botkit 的 Messenger 机器人:“bodyParser 未定义”错误
我在 AWS 上设置了一个 Bitnami Node.JS 实例。安装了默认的 Botkit。更新了依赖项。使用 Messenger 集成设置基本的 Facebook 页面/应用程序。尝试运行默认的 Messenger 机器人示例 (Facebook_bot.js)。
运行机器人在加载时会出现以下错误:
由于这一切都是开箱即用并使用示例 Messenger 机器人,这是 BotKit 源的问题吗?还是我设法弄乱了这里涉及的最小设置?
slack - 未找到 watson-developer-cloud botkit-middleware 资源
我是机器人世界的新手。我正在尝试使用 botkit 中间件将在 IBM Watson 上创建的对话服务与 Slack Bot 集成。我只是从 Git ( Botkit Slack Integration获取代码,并尝试使用它来回答来自我的 Watson Conversation 服务的 Slack 查询。但是,在收到松弛消息后,API 返回以下错误。没有太多关于如何处理互联网上的这些错误。有人可以帮我吗?
`> 节点 simple-bot-slack.js
信息:** 未指定持久存储方法!进程关闭时数据可能会丢失。信息:**设置自定义处理程序以处理 Slack 消息信息:** API CALL:https ://slack.com/api/rtm.start 客户端服务器侦听端口 5000 通知:** BOT ID:jarvis ...正在尝试连接到 RTM!通知:RTM websocket 打开信息:收到 Slack 消息 { 类型:'消息',频道:'C72GK14JD',
用户:'U72VDTC2F',文本:'Hi',ts:'1505453454.000117',
source_team:'T733VG8DS',团队:' T733VG8DS',事件:'direct_mention',匹配:['Hi',索引:0,输入:'Hi'],
watsonError: { 错误:在 Request._callback 处找不到资源 (D:\node\wrath\botkit-middleware-master\examples\simple-bot\node_modules\watson-developer-cloud\lib\requestwrapper.js:88:1 5 ) 在 Request.self.callback (D:\node\wrath\botkit-middleware-master\examples\simple-bot\node_modules\request\request.js:188:22) 在 emitTwo (events.js:106:13)在 Request.emit (events.js:191:7) 在请求。(D:\node\wrath\botkit-middleware-master\examples\simple-bot\node_modules\request\request.js:1171:10) 在 emitOne (events.js:96:13) 在 Request.emit (events.emit) js:188:7) 在 Gunzip。(D:\node\wrath\botkit-middleware-master\examples\simple-bot\node_modules\request\request.js:1091:12) 在 Gunzip.g (events.js:292:16) 在 emitNone (events. js:91:20) 在 Gunzip.emit (events.js: 185:7) 在 endReadableNT (_stream_readable.js:974:12) 在 _combinedTickCallback (internal/process/next_tick.js:80:11) 在 process._tickCallback (internal/process/next_tick.js:104:9) 原因:{错误:在 Request._callback (D:\node\wrath\botkit-middleware-master\examples\simple-bot\node_modules\watson-developer-cloud\lib\requestwrapper.js:8 8:15) 处找不到资源.self.callback (D:\node\wrath\botkit-middleware-master\examples\simple-bot\node_modules\request\request.js:188:22) 在 emitTwo (events.js:106:13) 在请求。在请求时发出 (events.js:191:7)。(D:\node\wrath\botkit-middleware-master\examples\simple-bot\node_modules\request\request.js:1171:10) 在 emitOne (events.js:96:13) 在 Request.emit (events.emit) js:188: 7)在Gunzip。(D:\node\wrath\botkit-middleware-master\examples\simple-bot\node_modules\request\request.js:1091:12) 在 Gunzip.g (events.js:292:16) 在 emitNone (events. js:91:20) 在 Gunzip.emit (events.js:185:7) 在 endReadableNT (_stream_readable.js:974:12) 在 _combinedTickCallback (internal/process/next_tick.js:80:11) 在 process._tickCallback ( internal/process/next_tick.js:104:9) 代码:未定义,错误:'找不到资源'},isOperational:真,代码:未定义,错误:'找不到资源'}}`
bots - 启动 RTM 连接时,Botkit Slackbot 返回错误“not_authed”
我有一个 2017 年 1 月至 3 月编写的 slack 机器人。但是,当我使用相同的代码创建一个新机器人并启动它时,我收到错误“not_authed”。
我已经调试了这个问题并且我的令牌很好(即,如果我使用我的令牌作为正文参数进行https://slack.com/api/rtm.connect POST 调用,它工作正常并且我得到一个结果)。它似乎只是似乎不起作用的 bot.startRTM 方法。
我的代码在底部:
有任何想法吗?
javascript - 递归新承诺:RangeError:超出最大调用堆栈大小
我收到 RangeError:超出最大调用堆栈大小
我遇到的困境是,每当我运行它时,它并不总是立即解决用户对象的所有属性和值,这就是为什么如果不存在controller.storage.users.get
我尝试再次运行它的原因。orderData.pendingItem
但是,我猜是因为它运行了很多次,所以它给了我一个调用堆栈错误。
解决此问题或解决此问题的最佳方法是什么?
node.js - Update a bot message after responding to a slack dialog
I'm having some issues to update an interactive message after responding to a slack dialog. I'm using botkit on a node.js server.
Here is my workflow:
- User trigger an interactive message via a slash command
- User click a button on that message
- A dialog pops up, user fill the form and validate
- Something is done on the server side
- The first message should update
Now, here is the logic I'm using:
- User trigger an interactive message via a slash command
Nothing fancy, I use:
Then I parse the command, and send the appropriate message, with the appropriate attachments (buttons)
- User click a button on that message
Same, I use the event sent by botkit:
Then I create a dialog:
Here I'm doing something really (really) dirty, and should not be done. But that's the only way I found to update the initial message after the dialog is filled.
The callback_id
actually contains an object, with the response_url
of the initial message (and something to identify the form).
- A dialog pops up, user fill the form and validate
- Something is done on the server side
Here, I use once more the event provided by botkit:
then I parse the message.submission.callback_id
and detect the response_url
. With this, I can create an object I call originalMessage
.
- The first message should update
At the moment I use :
with originalMessage
containing the response_url
of the first message.
It does work. The first message is being replaced by the new one.
But I'm really not happy with that solution, and was wondering if I was missing something somewhere. I've seen couple apps having that type of workflow, so there must be a way.
Thank you for your help :)
facebook - 如果故事被弃用,假设我如何使用 wit.ai?
我正在使用这个工作流 Glitch Hosting -> BotKit Studio API -> Facebook API -> Wit.AI API 开发一个机器人。现在 Wit.ai 与我的机器人一起工作,当我检查 de Logs 控制台(在 wit.ai 中)显示已通过 messenger 发送的消息时,但我不明白如何使用 wit.ai 来分析用户的消息和然后发送响应。