标签: botframework

Microsoft Botframework:如何使用Telegram参数或发送NewLine?

我正在尝试微软的新Botframework.发送消息时,消息\n中没有换行符.我怎么解决这个问题?

在Telegram API中,有一个名为parse_mode(https://core.telegram.org/bots/api#formatting-options)的参数用于激活HTML.我可以使用"<br />",但我不知道如何设置此参数.有人可以通过发送换行符或电报参数来帮助我吗?

问候最大

botframework

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

如何在MS Bot框架中保留对话数据

我正在使用Microsoft bot开发框架,使用其node.js sdk.我一直在寻找一种方法来保存对话的所有消息.我将persistConversationData设置为true,并尝试使用session.conversationData访问conversationData.但是,它是空的.

1-是否有内置方法来访问对话中的所有消息?

2-如果persistConversationData不适用于此,任何人都可以解释它的用法.

非常感谢.

save botframework

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

Microsoft Bot Framework和Azure Bot服务之间的区别?

我想创建一个机器人,但我很困惑什么是Bot Framework和Azure Bot服务?谁能详细解释一下?

botframework azure-bot-service

3
推荐指数
2
解决办法
3600
查看次数

回复Microsoft botframework中的"正在键入"消息

我正在使用c#.net和LUIS认知服务上的MicrofsoftBotFramework开发一个聊天机器人.

我希望当用户输入时它应该回复为打字或机器人正在输入..

 public async Task<HttpResponseMessage> Post([FromBody]Activity activity)
            {
                Trace.TraceInformation($"Type={activity.Type} Text={activity.Text}");

                if (activity.Type == ActivityTypes.Message)
                {
                    //await Microsoft.Bot.Builder.Dialogs.Conversation.SendAsync(activity, () => new ContactOneDialog());

                    //Implementation of typing indication
                    ConnectorClient connector = new ConnectorClient(new System.Uri(activity.ServiceUrl));
                    Activity isTypingReply = activity.CreateReply("Shuttlebot is typing...");
                    isTypingReply.Type = ActivityTypes.Typing;
                    await connector.Conversations.ReplyToActivityAsync(isTypingReply);

                    await Conversation.SendAsync(activity, () =>
                    new ExceptionHandlerDialog<object>(new ShuttleBusDialog(), displayException: true));                              
                }
                else
                {
                    HandleSystemMessage(activity);
                }
                var response = Request.CreateResponse(System.Net.HttpStatusCode.OK);
                return response;
            }
Run Code Online (Sandbox Code Playgroud)

这段代码也有效,但它将"TYPING"称为动画并转到下一条消息.但我想它应该显示我的消息,我已设置为"Shuttlebot正在打字...

看到这里的图像"

c# botframework

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

在bot框架中覆盖Context.PostAsync

我注意到,通过Bot框架和电报频道,像:)这样的表情符号不会转换为表情符号.

然而,它非常简单,我们只需要改变:)来:微笑:并且会出现一个很好的表情符号.

最佳解决方案是覆盖context.PostAsync()函数,执行那种字符串替换,然后继续.

我们可以重写此方法,而无需重新编译所有框架吗?

谢谢 :)

bots telegram-bot botframework

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

Microsoft Bot Framework中的"自定义提示"是什么?

从版本3.8开始,Bot Framework现在包含了一些像这样的消息:

从版本3.8开始,不推荐使用DialogAction.validatedPrompt().请考虑使用自定义提示.

我在文档中没有看到任何提及.什么是"自定义提示",哪里可以了解有关如何改进已弃用功能的更多信息?

node.js botframework

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

node.js错误消息events.js:183 throw er; //未处理的'错误'事件

围绕微软的botframework,当我尝试运行机器人的主要文件app.js文件时,第一次没问题,在我关闭机器人模拟器和所有程序之后,再次运行app.js,弹出此错误消息

events.js:183
      throw er; // Unhandled 'error' event
      ^

Error: listen EADDRINUSE :::3978
    at Object._errnoException (util.js:1022:11)
    at _exceptionWithHostPort (util.js:1044:20)
    at Server.setupListenHandle [as _listen2] (net.js:1351:14)
    at listenInCluster (net.js:1392:12)
    at Server.listen (net.js:1476:7)
    at Server.listen (C:\Users\yu\Documents\GitHub\BotBuilder-
Samples\Node\cards-AdaptiveCards\node_modules\restify\lib\server.js:404:32)
    at Object.<anonymous> (C:\Users\yu\Documents\GitHub\BotBuilder-
Samples\Node\cards-AdaptiveCards\app.js:10:8)
    at Module._compile (module.js:643:30)
    at Object.Module._extensions..js (module.js:654:10)
    at Module.load (module.js:556:32)
Run Code Online (Sandbox Code Playgroud)

我找到了一些解决方案,看起来我第二次运行js文件时采用了端口3978,我必须使用cmd查找哪个任务正在使用该端口,然后终止任务.

C:\>netstat -aon|findstr 3978
Run Code Online (Sandbox Code Playgroud)

所以这个人正在接收港口,虽然我已经关闭了所有程序

TCP    0.0.0.0:3978           0.0.0.0:0              LISTENING       13140
TCP    [::]:3978              [::]:0                 LISTENING       13140
Run Code Online (Sandbox Code Playgroud)

实际上它是node.exe本身,它仍然在后台运行

C:\Users\yu>tasklist|findstr 13140
node.exe                     13140 Console                    1     42,064 K
Run Code Online (Sandbox Code Playgroud)

我需要杀死它

C:\Users\yu>taskkill /f /t /im node.exe
Run Code Online (Sandbox Code Playgroud)

当我想多次运行该文件时,有没有办法不总是重复这样做,它今天才开始连线,我的意思是所有不同的app.js文件,包括官方示例代码.在过去的一个月里,一切都很好,我使用的IDE是sublime text 3,node.js版本是8.9.4 …

node.js sublimetext botframework

3
推荐指数
3
解决办法
2万
查看次数

MS ChatBot - ClientConnector未经授权的异常

我正在尝试使用ConnectorClient从Azure函数发送主动消息,但我获得了授权异常,尽管使用了正确的AppId&AppPassword

var connector = new ConnectorClient(new Uri(queueMessage.ChatBotDetails.ServiceUrl), new MicrosoftAppCredentials(appId, appPassword));

await connector.Conversations.SendToConversationAsync((Activity)message);
Run Code Online (Sandbox Code Playgroud)

但这会产生以下异常:

Microsoft.Bot.Connector.ErrorResponseException: Operation returned an invalid status code 'Unauthorized'

我在日志中输出应用密码和应用ID,它们是正确的.

azure chatbot botframework

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

.BOT文件未部署到Azure Bot Service v4

将Azure Bot Service与C#Bot Builder SDK v4 v4.0.7(GA版本于2018年9月发布)结合使用。

我正在使用BOT文件存储A的配置设置GenericService,因此已更改了Azure模板随附的默认BOT文件。

通过MSBOT CLI进行了更改。

通过模拟器在本地运行时,机器人代码会看到已修改的本地BOT文件,一切都很好。

但是,BOT从未部署到Azure,因此Azure服务看不到我的更改(它被保留在默认的BOT文件中)。我已经通过Visual Studio publish和GitHub CI进行了部署。

我必须使用Visual Studio Cloud Explorer手动上传文件,然后该bot能够使用修改后的版本,一切都很好。

问题是为什么BOT文件未与其余的bot代码一起部署,以及如何确保已部署它。不确定这是否是错误?

botframework azure-bot-service

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

如何在随后的瀑布步骤中检索自适应卡的表单提交

我使用的是Bot Framework(V4),并且有一个分为两个步骤的WaterfallDialog;第一步是捕获表单数据,第二步是处理表单数据。

第一步发送答复:

private async Task<DialogTurnResult> CaptureFormStepAsync(WaterfallStepContext stepContext, CancellationToken cancellationToken)
{
    var reply = await stepContext.Context.Activity.GetReplyFromCardAsync("BusinessyForm");
    await stepContext.Context.SendActivityAsync(reply, cancellationToken);
}
Run Code Online (Sandbox Code Playgroud)

GetReplyFromCardAsync是一个扩展方法这需要的JSON表示Activity具有自适应卡作为attachnent。自适应卡与类似。自适应卡还具有提交动作。

我的问题是如何将这些信息传递给下一步?

在先前的尝试中,我已返回提示:

return await stepContext.PromptAsync(
    "custom-prompt-id", 
    new PromptOptions { Prompt = MessageFactory.Text("Hello!") }, 
    cancellationToken);
Run Code Online (Sandbox Code Playgroud)

但是在这种情况下,我不想提示用户其他信息。理想情况下,我想“保持”对话框状态以进行响应,当检测到响应时,下一步将处理提交结果。

我尝试过的事情:

  • 在这里这里查看示例。两者都显示了如何呈现卡,但没有显示如何在后续步骤中处理输入。
  • 查阅卡架构文档以获取输入信息
  • 此处回顾了GitHub的AdaptiveCard存储库中类似问题的讨论。

这可行吗?任何帮助将非常感激!

c# bots botframework

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