标签: botframework

通过 Postman 与您的 microsoft bot 框架聊天

我对 Bot Framework 很陌生,正在探索解决方案。

\n\n

我正在尝试在Android 应用程序(以及之后的 python Flask 应用程序)中使用 microsoft bot 框架作为 API 调用。为此,我想弄清楚如何向我的机器人发送消息并通过邮递员接收答案

\n\n

现在我的机器人已经启动并在团队和网络聊天中运行。我正在使用机器人服务来利用微软机器人框架。我的应用程序在 Heroku 上运行,机器人托管在 Azure 上。

\n\n

在此输入图像描述

\n\n

我已经检查了 bot 服务上的直接线路通道,但这正在返回一个用于网络聊天的 iframe,我想通过 python、java 等以编程方式发送我的消息作为 api 调用\n在此输入图像描述

\n\n

我还检查了有关 v3 机器人框架的 stackoverflow 问题,并尝试了以下操作:\n如何将我的 python 机器人连接到 microsoft 机器人连接器

\n\n

从 Postman 向 Microsoft Bot 发送消息

\n\n

https://pypi.org/project/botframework-connector/

\n\n

1\xc2\xb0 我在第二个 stackoverflow url 之后访问了我的不记名令牌:

\n\n
{\n   "token_type": "Bearer",\n   "expires_in": 3600,\n   "ext_expires_in": 3600,\n   "access_token": "eyJ0eXAiOiJKV1QiL***********************************ObNWg"\n}\n
Run Code Online (Sandbox Code Playgroud)\n\n

2\xc2\xb0 然后向邮递员提供带有此网址的不记名令牌https://directline.botframework.com/v3/directline/conversations/

\n\n

和这个 json 原始主体:

\n\n …

postman botframework

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

我想知道如何使用Bot框架SDK for python设置自适应卡的主机配置

如果您使用带有大量按钮的英雄卡,则按钮操作将在 Teams 上水平滚动。因此,我们正在考虑使用自适应卡片,因为我们希望将按钮显示为垂直排列的消息。我想更改HostConfig的ActionsConfig的actionsOrientation的值以适应Adaptive Card,但我不知道如何操作。使用Bot框架SDK for python,您可以使用创建AdaptiveCard附件CardFactory.adaptive_card(card_data: dict),但我不知道如何设置HostConfig。

python json botframework microsoft-teams adaptive-cards

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

提示对话框需要提示选项(参数“选项”)

我正在起诉 MS Bot Framework,并且在从一个瀑布对话框路由到另一个瀑布对话框时,收到此错误“提示对话框需要提示选项(参数“选项”)”。请帮我看看这可能是什么原因造成的。从父级到子级的调用对话框:

return await stepContext.BeginDialogAsync(DialogType.ChildDialog.ToString(), conversationData, cancellationToken);
Run Code Online (Sandbox Code Playgroud)

在 ChildDialog 内:

public ChildDialog(
        IServiceProvider serviceProvider)
        : base(nameof(ChildDialog))
{
    _
    _conversationDataAccessor = serviceProvider.GetService<UserState>().CreateProperty<ConversationData>(nameof(ConversationData));
    _userState = serviceProvider.GetService<UserState>().CreateProperty<User>(nameof(User));

    var Test = new WaterfallStep[]
    {
        StepOne,
        StepTwo
    };

    _D1 = serviceProvider.GetService<D1>();
    _D2 = serviceProvider.GetService<D2>();

    AddDialog(new WaterfallDialog(nameof(Test), Test));
    AddDialog(new TextPrompt(DialogIds.ChildDialog));
    AddDialog(D1);
    AddDialog(D2);
}
Run Code Online (Sandbox Code Playgroud)

c# asp.net exception chatbot botframework

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

如何在 Azure 机器人消息文本中添加超链接

我最近开始在 Node js 中创建一个 Azure 机器人。我想在机器人响应之一中添加一个超链接,并在用户单击它后发送主动响应。就像是:

Please click this link to complete the payment

并且该链接应该是一个将重定向到端点的超链接。

我试图找到一种方法来实现它,但到目前为止,我还没有能够实现。我看过以下链接:

https://learn.microsoft.com/en-us/azure/bot-service/rest-api/bot-framework-rest-direct-line-3-0-send-activity?view=azure-bot-service- 4.0

https://learn.microsoft.com/en-us/azure/bot-service/bot-builder-howto-add-media-attachments?view=azure-bot-service-4.0&tabs=javascript

有人可以建议我实现这一目标的方法吗?

node.js botframework azure-bot-service

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

如何编写MS Bot Builder节点SDK机器人的单元测试?

我正在尝试查找MS Bot框架是否提供任何资源/准则来为基于Node SDK的机器人编写单元测试(特别是,我使用直线通道)。

如果没有,如何使用Mocha之类的工具编写测试用例来测试各种对话框。

我正在使用restify,如下所示:

/**-----------------------------------------------------------------
 * Setup Chat-Bot
 -----------------------------------------------------------------*/
// Create chat connector for communicating with the Bot Framework Service
var connector = new builder.ChatConnector({
    appId: process.env.MICROSOFT_APP_ID || config.appId,
    appPassword: process.env.MICROSOFT_APP_PASSWORD || config.appPassword
});


// Initialize bot
var bot = universalBot(connector);


/**-----------------------------------------------------------------
 * Setup Server
 -----------------------------------------------------------------*/
var server = restify.createServer();

server.listen(process.env.port || 8080, function () {
    console.log('%s listening to %s', server.name, server.url);
});

server.pre(restify.pre.sanitizePath());
server.use(restify.queryParser());


/**---------------------------------------------------------------
 * Routes
 ----------------------------------------------------------------*/
server.get('/', function (req, res) {
    res.send("Hello from Chatbot …
Run Code Online (Sandbox Code Playgroud)

node.js botframework

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

表单流中的枚举选项的自定义消息 - C#Bot Framework

我正在使用MS bot框架,我无法找到表单流中的枚举选项的自定义消息.我尝试过提示属性,但它不起作用.

我想要的是:bot将为用户显示如下选项:

1)是的,我想成为DayNinja!

2)不,我不想解锁流量来实现我的目标.

3)稍后,我将从基础开始

现在,我得到的是:"是","否","后来"

任何帮助将不胜感激谢谢!

我的代码

c# botframework formflow

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

将LiveAgent与MS BotFramework(NodeJS)集成?

我在集成LiveAgent(客户支持/票务Web应用程序)和MS BotFramework时遇到问题.

Azure中的botframework工作正常并准备与它集成.

以下是我猜/应该是的架构

  1. LiveAgent将对MS Azure Bot Endpoint(NodeJS应用程序 - 像:)执行HTTP POST(它们具有API https://<ms_azure_link>/api/messages)
  2. 当Azure收到POST时,它将匹配意图,运行正常的对话框流,并返回必要的响应(文本,英雄卡,图像等),直到对话结束.

这是我的问题:

  1. 当LiveAgent想要连接到Azure时,应该使用哪个端点?该api/messages叫什么DirectLine API 3.0
  2. 实际上DirectLine API将返回如下内容: { "conversationId": "3M3TeaDtc3uArxXwlna7AG", "token": "<My token>", "expires_in": 1800, "streamUrl": "wss://directline.botframework.com/v3/directline/conversations/3M3TeaDtc3uArxXwlna7AG/stream?watermark=-&t=ubeJVCXqb9I.dAA.MwBNADMAVABlAGEARAB0AGMAMwB1AEEAcgB4AFgAdwBsAG4AYQA3AEEARwA.7UpMr6Tm0wE.9RmCM_XyjII.CQbU7viSec2P7CtznrijQwou0A8N0GynOvnsUmNT04o", "referenceGrammarId": "669c7246-bc5c-f25f-aae7-0ad7f39e25b4" }

    如您所见,使用DirectLine连接后,需要继续使用WebSocket.

    那么如何使用LiveAgent连接到这个WebSocket呢?有关您的信息,LiveAgent仅支持HTTP GET/POST到自定义URL.

  3. 如果我们不使用DirectLine API,我将使用MS Azure Bot Endpoint.现在问题变成:应该将什么传递给此端点,以便LiveAgent可以像往常一样授权自己并使用Bot?有什么例子吗? DirectLine API示例似乎没有谈论这个.

非常感谢你提前.我知道这个问题可能没有很好地说明,但希望你能理解.

如果您有任何疑问,请告诉我,我很高兴澄清一下.

再次感谢你的帮助.

botframework azure-language-understanding

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

以编程方式从JSON文件创建对话框

我在Node.js上使用Microsoft Bot Framework.我有一个如下所示的配置文件.

{
  "server": {
    "port": 3978
  },
  "dialogs": {
    "default": {
      "text": "This is some sample text.",
      "actions": [
        {
          "title": "Button 1",
          "value": "Action 1"
        },
        {
          "title": "Button 2",
          "value": "Action 2"
        }
      ]
    },
    "hello": {
      "text": "hello",
      "matches": "^hello$"
    },
    "asdf": {
      "text": "asdf",
      "matches": "^asdf$"
    },
    "goodbye": {
      "text": "goodbye",
      "matches": "^goodbye$"
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

我想使用for循环来读取对话框并创建它们,以便它们响应text值并具有值的触发器操作matches.

例如,机器人响应hello输入hello,asdf输入asdfgoodbye输入goodbye. …

azure node.js botframework

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

Microsoft Bot Framework v4:Bot重新启动后,未经授权的Facebook Messenger主动消息

我已经在C#中使用Microsoft框架v4 SDK编写了一个机器人。该机器人已部署在Azure中,并连接到网络聊天,直线和Facebook Messenger渠道。该机器人适合所有人。

用户可以订阅以主动接收更新。为此,我使用一个存储的ConversationReference,然后将其用于发送主动消息。再次,所有这一切都正常,除非机器人wepApp重新启动,这会导致:-

Exception caught : Microsoft.Bot.Schema.ErrorResponseException: Operation returned an invalid status code 'Unauthorized' for the facebook channel.
Run Code Online (Sandbox Code Playgroud)

如果我从facebook messenger向机器人发送了另一条消息,那么即使对于较旧的存储的ConversationReferences,主动消息也可以再次开始工作。

最初,我是按照示例使用MemoryStorage的,但是我将其更改为将Azure Blob存储用于sessionState和userState。这没有区别。好像它必须在内存中存储一​​个Facebook身份验证令牌,因此,如果应用程序重新启动,令牌将丢失,直到用户从Messenger发送了另一条消息。

有什么办法可以解决此问题,因为如果无法处理机器人webApp重新启动,它会使已订阅的主动更新毫无意义吗?

非常感谢

facebook proactive unauthorized facebook-messenger botframework

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

团队中的主动消息传递机器人,无需事先提及该机器人

我正在使用Microsoft机器人框架来创建机器人并将其集成到团队中。该漫游器的部分要求包括每天一次主动向用户发送消息。据我了解,我只能向在机器人之后添加到team / groupChat或直接向机器人发送消息的用户发送消息。我的问题是-我可以以某种方式绕过此限制吗?我的一个朋友叫我去graphAPI的一项新功能,如新测试版的一部分- https://docs.microsoft.com/en-us/graph/api/user-add-teamsappinstallation?view=graph-rest -beta&tabs = http

对我来说,它似乎与解决方案无关,因为我没有在响应中返回任何数据,因此,如果没有对话参考对象,我仍然无法向用户发送消息。

目前,我的解决方案是简单地在添加频道时在频道中广播一条消息,要求用户通过发送消息来“注册”它。还有其他建议吗?

node.js microsoft-graph botframework microsoft-teams

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