标签: botframework

如何在对话框中使用context.Fail()

我无法理解如何在Dialogs中使用该IDialogContext方法Fail.我知道它应该向父对话框发送一个异常,但这会发生在哪里?我想在ResumeAfter方法中,但我不完全确定.

我问这个是因为我有一个从根对话框分支的几个对话框,我正在试图找出一种方法将异常一直传播回root并返回到我最初Conversations.SendAsync在Controller中调用的位置.这样做的任何例子都会很棒.

botframework

1
推荐指数
1
解决办法
309
查看次数

为什么Microsoft bot框架不可扩展?

在群集之后,它无法按预期工作,并一次又一次地询问我的名字.

我错过了什么吗?

这是我的微软机器人框架代码.

server.js

var worker = require('./worker');
var cluster = require('cluster');


var spawnWorker = function() {
  worker.createServer();
};

var createCluster = function() {
  if(cluster.isMaster) {
    var cpus = require('os').cpus().length;
    for(var i = 0; i < cpus; i++) {
      cluster.fork();
    }
    cluster.on('online', function(wkr) {
      console.log('Worker started', wkr.process.pid);
    });
    cluster.on('exit', function(wkr) {
      console.log('Worker died, respawing', wkr.process.pid);
      cluster.fork();
    });
  } else {
    spawnWorker();
  }
};

createCluster();
Run Code Online (Sandbox Code Playgroud)

worker.js

exports.createServer = function(){
    var builder = require('botbuilder');
    var connector = new builder.ConsoleConnector().listen();
    var bot = …
Run Code Online (Sandbox Code Playgroud)

node.js botframework

1
推荐指数
1
解决办法
410
查看次数

如何在Microsoft Bot Framework中使用全局命令?

我已经阅读了一些我们可以IScorable.cs用来实现全局可用命令的地方,例如在聊天流程中的任何地方输入"设置"以打开设置对话框.但似乎没有关于如何使用它的文档.

请帮忙.

c# botframework

1
推荐指数
1
解决办法
825
查看次数

是否可以检测用户何时在Facebook上打开聊天窗口?

我正在尝试创建一个聊天机器人,为了避免用户打开聊天窗口而不知道可用的选项,我想在用户打开聊天窗口时给出一些基本的说明.

用户打开聊天窗口时是否有可用的触发器?也许那时我可以检查,如果没有正在进行的对话,我可以提供基本的指示.

我做了一些谷歌搜索,没有发现这一点.是否可以执行此类操作,如果没有,是否有办法缓解此问题,并向用户提供有关聊天机器人功能和支持的说明的信息?

chatbot botframework facebook-chatbot

1
推荐指数
1
解决办法
1409
查看次数

如何在node.js版本的Microsoft Bot Framework中"退出"?

每当用户输入'exit'作为消息时,我想调用session.endDialog.

目前,我的机器人有许多类型的对话,但我希望机器人在用户输入"退出"时结束对话,而不管用户当前在哪个对话中.

有没有办法做到这一点?

node.js botframework

1
推荐指数
1
解决办法
553
查看次数

提供的URL未列入信使扩展的白名单

我在botframework仪表板中遇到了这个问题.

我已将谷歌地图添加为白名单域名.

{
  "setting_type" : "domain_whitelisting",
  "domain_action_type": "add",
  "whitelisted_domains":[
    "https://www.google.com/maps/place/"
  ]
}
Run Code Online (Sandbox Code Playgroud)

完整链接:

https://www.google.com/maps/place/51%C2%B030 '40 .1%22N + 0%C2%B005'02.0%22W/@ 51.5111351,-0.0860752,17z/data =!3m1!4b1!4m5 !3M4 1s0x0:!!!为0x08平方米3d51.5111351 4D-0.0838865!

为什么它不会呈现为白名单的域名?

编辑:我解决了这个问题.

https://maps.google.com/maps

我添加了那个链接.

facebook-messenger botframework

1
推荐指数
1
解决办法
1651
查看次数

与BotFramework和LUIS的JSON序列化程序错误

StackOverflow社区!

我有一个聊天机器人,并集成了LUIS.ai,使其更加智能.其中一个对话即将预约与主管(教师)一切都工作正常,字面上相同的代码.几个小时前,我遇到了一些奇怪的错误.

 Exception: Type 'Newtonsoft.Json.Linq.JArray' in Assembly 'Newtonsoft.Json, Version=10.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed' is not marked as serializable.
Run Code Online (Sandbox Code Playgroud)

如何重现错误?

如果用户的输入中缺少实体(教师和日期),则它工作正常,机器人构建表单,询问缺少的输入并显示建议的会议时间.

如果其中一个实体从输入中遗漏了它,它将构建一个表格并询问缺少的日期或教师实体,并显示建议的会议时间.

如果用户的输入同时包含实体:教师和日期,那么我收到错误.

这是我的WebApiConfig类:

public static class WebApiConfig
    {
        public static void Register(HttpConfiguration config)
        {
            // Json settings
            config.Formatters.JsonFormatter.SerializerSettings.NullValueHandling = NullValueHandling.Ignore;
            config.Formatters.JsonFormatter.SerializerSettings.ContractResolver = new CamelCasePropertyNamesContractResolver();
            config.Formatters.JsonFormatter.SerializerSettings.Formatting = Formatting.Indented;
            JsonConvert.DefaultSettings = () => new JsonSerializerSettings()
            {
                ContractResolver = new CamelCasePropertyNamesContractResolver(),
                Formatting = Newtonsoft.Json.Formatting.Indented,
                NullValueHandling = NullValueHandling.Ignore,
            };

            // Web API configuration and services

            // Web API routes
            config.MapHttpAttributeRoutes();

            config.Routes.MapHttpRoute(
                name: "DefaultApi",
                routeTemplate: "api/{controller}/{id}", …
Run Code Online (Sandbox Code Playgroud)

c# json botframework azure-language-understanding

1
推荐指数
1
解决办法
542
查看次数

将单击的按钮重定向到特定页面

public virtual async Task ShowAnnuvalConferenceTicket(IDialogContext context, IAwaitable<IMessageActivity> activity)
        {
            var message = await activity;

            PromptDialog.Choice(
                context: context,
                resume:ChoiceReceivedAsync ,
                options: (IEnumerable<ProductGroups>)Enum.GetValues(typeof(ProductGroups)),
                prompt: " ",
                promptStyle: PromptStyle.Auto
                );
        }
        public virtual async Task ChoiceReceivedAsync(IDialogContext context, IAwaitable<ProductGroups> activity)
        {
            ProductGroups response = await activity;
            context.Call<object>(new AnnualPlanDialog(response.ToString()), ChildDialogComplete);

        }
        public virtual async Task ChildDialogComplete(IDialogContext context, IAwaitable<object> response)
        {
            var respond = await response as Activity;
            if (respond = ProductGroups.MoreCategories)
            {
                await context.PostAsync("Click here to view more categories");
                context.Done(this);
            }

        }

public enum ProductGroups …
Run Code Online (Sandbox Code Playgroud)

c# botframework

1
推荐指数
1
解决办法
201
查看次数

1
推荐指数
1
解决办法
227
查看次数

使用DirectLine和网络聊天(Node.js)在bot-framework v4中发送打字指示器

Microsoft bot-framework SDK v4的官方文档未演示如何发送打字指示符(而v3具有这些说明)。我正在使用DirectLine和botframework-webchat。

我该怎么做呢?谢谢!

node.js botframework direct-line-botframework

1
推荐指数
2
解决办法
1254
查看次数