Bot Builder SDK4-Microsoft Teams扩展+ Bot框架模拟器

时间:2019-07-03 15:09:30

标签: botframework microsoft-teams

我开始使用Microsoft bot生成器sdk v4和打字稿(node.js)中的团队扩展(v4-beta1)为Microsoft团队开发一个bot,我想对其进行测试。为此,在本地,我下载了bot框架模拟器v4。首先,我会尝试制作一个简单的echo bot,但要有积极主动的回答,例如:

'''javascript

const teamsContext = TeamsContext.from(context);
const convRef = TurnContext.getConversationReference(context.activity);
const tenantId = teamsContext.tenant.id;

var text = "You said : " + context.activity.text + "\n memberId : " + context.activity.from.id + "\n memberName : " + context.activity.from.name +
                        "\n channelId : " + context.activity.channelId;
const members = adapter.getConversationMembers(context);
                    await adapter.createConversation(convRef, async (newContext) => {
                        await newContext.sendActivity(text + "\n" + JSON.stringify(members));
                    });

'''

但是,当我在模拟器上尝试时,出现此错误: [onTurnError]:TypeError:无法读取未定义的属性“ tenant”。 我想由于仿真器的缘故,一般上下文不能在团队上下文中“翻译”。是否可以在不部署机器人的情况下测试它,例如自定义http请求,还是应该部署它?

2 个答案:

答案 0 :(得分:0)

如果要在团队中测试您的机器人,则需要在Azure中创建一个机器人。您不必部署到它,因为您可以使用Azure Relaysngrok通过Azure以及随后在Teams中运行本地托管的bot。

无论选择哪种口味,您都将在与bot一起的机器上本地运行该服务。生成的终结点将放置在Azure机器人设置刀片的“消息传递终结点”中。请确保在生成的端点上附加“ / api / messages”(例如https://testrelay.servicebus.windows.net/myrelay/api/messages)。

enter image description here

您还需要确保将Azure机器人中的MicrosoftAppId和MicrosoftAppPassword包含在本地托管的机器人中。创建Azure机器人时,应记录这些内容。如果错过了,可以单击资源组中的“部署”刀片,选择已部署的漫游器,然后选择输入。您的值在此处存储为“ appId”和“ appSecret”。

enter image description here

在这一点上,您的机器人应该不错。您需要先在Teams中注册您的机器人,然后该机器人才会被认可。您可以通过Azure机器人中的渠道添加它,使其只能由您访问,也可以通过需要构建和上传Teams应用manifest的Teams应用将其添加为应用。

希望有帮助!

答案 1 :(得分:0)

设置机器人的最简单方法是使用“ Microsoft Teams”本身内部的“ App Studio”应用程序简单地创建一个机器人。您只需要安装它,然后向它发送消息或打开应用即可。

App Studio->清单编辑器->创建新应用-> Bots->设置

这确实是使所有组件正常运行的最简单方法,而无需直接与Azure打交道。