首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >托管Microsoft Bot Framework聊天机器人的Heroku

托管Microsoft Bot Framework聊天机器人的Heroku
EN

Stack Overflow用户
提问于 2017-07-18 07:41:29
回答 2查看 698关注 0票数 0

我使用做了一个聊天机器人。机器人在仿真器上运行得很好。但是我想把它寄托给Heroku。

我的app.js代码:

代码语言:javascript
复制
var builder = require('botbuilder');
var restify = require('restify');
var apiairecognizer = require('api-ai-recognizer');
var request = require('request');

//=========================================================
// Bot Setup
//=========================================================

// Setup Restify Server
var server = restify.createServer();
server.listen(process.env.port || process.env.PORT || 3978, function () {
   console.log('%s listening to %s', server.name, server.url); 
});

// Create chat bot
var connector = new builder.ChatConnector({
    appId: "xxx", /*changed*/
    appPassword: "xxx" /*changed*/
});

server.post('/api/messages', connector.listen());
var bot = new builder.UniversalBot(connector);


var recognizer = new apiairecognizer("xxx");
var intents = new builder.IntentDialog({
         recognizers: [recognizer]
});

bot.dialog('/',intents);

intents.matches('Intro',function(session, args){
    var fulfillment = builder.EntityRecognizer.findEntity(args.entities, 'fulfillment');
    if (fulfillment){
        var speech = fulfillment.entity;
        session.send(speech);
    }else{
        session.send('Sorry...not sure how to respond to that');
    }
});

intents.matches('Default Fallback Intent',function(session, args){
     var fulfillment = builder.EntityRecognizer.findEntity(args.entities, 'fulfillment');
    if (fulfillment){
        var speech = fulfillment.entity;
        session.send(speech);
    }else{
        session.send('Sorry...not sure how to respond to that');
    }
});

我尝试使用以下命令将其推到Heroku:

  1. git远程rm heroku
  2. git init
  3. 创建了一个文件.gitignore并在其内部进行了node_modules/
  4. 吉特加。
  5. git提交-m“基本的bot设置完成”
  6. 过程文件并添加代码web:节点index.js
  7. heroku创造
  8. heroku git:远程-a应用程序名
  9. git推heroku大师
  10. 赫鲁库开放

我还通过消息端点更新到messaging :中的http://appname.herokuapp.com/api/messages

建造成功了。如果我打开http://appname.herokuapp.com/api/messages,我看到的是{"code":"MethodNotAllowedError","message":"GET is not allowed"}和打开{"code":"ResourceNotFound","message":"/ does not exist"}

我被困在这里了。我想让聊天机器人在页面上使用Bot注册门户提供的i帧。如何从这里出发,使机器人工作?

EN

回答 2

Stack Overflow用户

发布于 2017-09-25 14:45:59

我也有同样的问题,通过这样做解决了它。在app文件夹中打开终端/powershell,并键入以下内容

heroku config:set MICROSOFT_APP_ID=YOUR_APP_ID MICROSOFT_APP_PASSWORD=YOUR_APP_PASSWORD

票数 3
EN

Stack Overflow用户

发布于 2017-11-28 11:33:56

这意味着你的机器人是托管和工作的。您的bot基本上是一个只接受post请求的API:

代码语言:javascript
复制
server.post('/api/messages', connector.listen());

因此,当您试图在浏览器中访问http://appname.herokuapp.com/api/messages时,您正在发出一个GET请求,而您的API不接受这个请求。

iFrame将是您的bot的前端,它将使用托管在heroku上的bot API。设置iFrame的说明如下:https://learn.microsoft.com/en-us/bot-framework/channel-connect-webchat

您可以通过单击右手角的测试按钮来测试API是否在机器人门户https://dev.botframework.com/bots?id=[your-bot-id]上工作,该按钮将打开一个网络聊天。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45160477

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档