Bot Builder SDK4 - Microsoft Teams Extensions + 机器人框架模拟器
Bot Builder SDK4 - Microsoft Teams Extensions + bot framework emulator
我开始使用 microsoft bot builder sdk v4 和 typescript (node.js) 中的团队扩展 (v4 - beta1) 为微软团队开发一个机器人,我想测试他。为此,我在本地下载了 bot 框架模拟器 v4。一开始,我会尝试制作一个简单的回声机器人,但要有主动的回答,就像那样:
'''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'。
我想由于仿真器的原因,在团队上下文中一般上下文不能是 "translate"。是否可以在不部署机器人的情况下对其进行测试,例如自定义 http 请求,还是我应该部署它?
如果您想在 Teams 中测试您的机器人,您需要在 Azure 中创建一个机器人。您不必部署到它,因为您可以使用 Azure Relays or ngrok 到 运行 通过 Azure 本地托管的机器人,随后在 Teams 中。
无论您选择哪种风格,您都将 运行 该服务与您的机器人一起在您的机器上进行本地化。生成的终结点将放入 Azure 机器人设置边栏选项卡的消息传递终结点。请务必在生成的端点后附加“/api/messages”(例如 https://testrelay.servicebus.windows.net/myrelay/api/messages
)。
您还需要确保在本地托管的机器人中包含来自 Azure 机器人的 MicrosoftAppId 和 MicrosoftAppPassword。您应该在创建 Azure 机器人时记录这些。如果您错过了这样做,您可以单击资源组中的 'Deployments' 边栏选项卡,select 您部署的机器人,然后单击输入。您的值在那里存储为 'appId' 和 'appSecret'.
至此,您的机器人应该可以使用了。您需要先在 Teams 中注册您的机器人,然后它才会被识别。您可以通过 Azure 机器人中的频道添加它,这将使其只能由您访问,或者您可以通过 Teams 应用程序将其添加为应用程序,这需要构建和上传 Teams 应用程序 manifest.
希望得到帮助!
设置机器人的最简单方法是使用 'Microsoft Teams' 本身内部的 'App Studio' 应用程序简单地创建一个。您只需安装它,然后发送消息或打开应用程序即可。
App Studio -> 清单编辑器 -> 创建新应用 -> 机器人 -> 设置
这确实是让一切正常运行的最简单方法,无需直接与 Azure 打交道。
我开始使用 microsoft bot builder sdk v4 和 typescript (node.js) 中的团队扩展 (v4 - beta1) 为微软团队开发一个机器人,我想测试他。为此,我在本地下载了 bot 框架模拟器 v4。一开始,我会尝试制作一个简单的回声机器人,但要有主动的回答,就像那样:
'''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'。 我想由于仿真器的原因,在团队上下文中一般上下文不能是 "translate"。是否可以在不部署机器人的情况下对其进行测试,例如自定义 http 请求,还是我应该部署它?
如果您想在 Teams 中测试您的机器人,您需要在 Azure 中创建一个机器人。您不必部署到它,因为您可以使用 Azure Relays or ngrok 到 运行 通过 Azure 本地托管的机器人,随后在 Teams 中。
无论您选择哪种风格,您都将 运行 该服务与您的机器人一起在您的机器上进行本地化。生成的终结点将放入 Azure 机器人设置边栏选项卡的消息传递终结点。请务必在生成的端点后附加“/api/messages”(例如 https://testrelay.servicebus.windows.net/myrelay/api/messages
)。
您还需要确保在本地托管的机器人中包含来自 Azure 机器人的 MicrosoftAppId 和 MicrosoftAppPassword。您应该在创建 Azure 机器人时记录这些。如果您错过了这样做,您可以单击资源组中的 'Deployments' 边栏选项卡,select 您部署的机器人,然后单击输入。您的值在那里存储为 'appId' 和 'appSecret'.
至此,您的机器人应该可以使用了。您需要先在 Teams 中注册您的机器人,然后它才会被识别。您可以通过 Azure 机器人中的频道添加它,这将使其只能由您访问,或者您可以通过 Teams 应用程序将其添加为应用程序,这需要构建和上传 Teams 应用程序 manifest.
希望得到帮助!
设置机器人的最简单方法是使用 'Microsoft Teams' 本身内部的 'App Studio' 应用程序简单地创建一个。您只需安装它,然后发送消息或打开应用程序即可。
App Studio -> 清单编辑器 -> 创建新应用 -> 机器人 -> 设置
这确实是让一切正常运行的最简单方法,无需直接与 Azure 打交道。