我已经在recast.ai上创建了一个机器人,我想将它与slack集成起来。现在,bot连接器正在请求在本地主机运行的我的机器人的端点(由ngrok转发)。现在我的问题是:
发布于 2017-01-26 09:24:42
您的bot不是在Recast.AI上运行的,Recast.AI是一个平台和一个API,您可以在这里训练一个bot来理解用户的输入。但是,您需要创建一个接收用户输入的脚本,并将其发送到Recast.AI API以进行分析。
Bot连接器帮助您将脚本连接到任何通道(如信使或空闲),并从这些通道接收所有用户的输入。
因此,您需要使用ngrok在本地运行脚本(也称为bot),并在bot连接器接口中设置这个URL,以接收来自用户的每条消息。
如果您在NodeJs中创建了机器人,您的脚本将如下所示:
npm install --save recastai recastai-botconnector express body-parser 您的文件index.js:
/* module imports */
const BotConnector = require('recastai-botconnector')
const recastai = require('recastai')
const express = require('express')
const bodyParser = require('body-parser')
/* Bot Connector connection */
const myBot = new BotConnector({ userSlug: 'YOUR_USER_SLUG', botId: 'YOUR_BOT_ID', userToken: 'YOUR_USER_TOKEN' })
/* Recast.AI API connection */
const client = new recastai.Client('YOUR_REQUEST_TOKEN')
/* Server setup */
const app = express()
const port = 5000
app.use(bodyParser.json())
app.post('/', (req, res) => myBot.listen(req, res))
app.listen(port, () => console.log('Bot running on port', port))
/* When a bot receive a message */
myBot.onTextMessage(message => {
console.log(message)
const userText = message.content.attachment.content
const conversationToken = message.senderId
client.textConverse(userText, { conversationToken })
.then(res => {
// We get the first reply from Recast.AI or a default reply
const reply = res.reply() || 'Sorry, I didn\'t understand'
const response = {
type: 'text',
content: reply,
}
return message.reply(response)
})
.then(() => console.log('Message successfully sent'))
.catch(err => console.error(`Error while sending message: ${err}`))
})运行你的机器人
node index.jshttps://stackoverflow.com/questions/41857134
复制相似问题