通过模拟器连接时未经授权的Botkit(Microsoft Bot Framework)

时间:2019-07-04 19:21:52

标签: node.js azure botframework chatbot botkit

我想设置botkit以使用Microsoft Bot Framework。

botkit在其“入门”页面上引用了yeoman生成器:https://botkit.ai/getstarted.html

此生成器询问应用ID和应用密码。

我以天蓝色->设置转到了自己创建的频道,以获取我的应用ID。从“ Microsoft App ID”复制了值,并将鼠标悬停在信息图标上,告诉我单击“管理”以获取密码。 单击“管理”,将我带到“未找到”页面。 (根据旧文章,这本应该有用,我想这是因为迁移了吗?https://docs.microsoft.com/en-us/azure/bot-service/bot-service-quickstart-registration?view=azure-bot-service-3.0

之后,我关注了一个Microsoft博客文章,内容是在https://blog.botframework.com/2018/07/03/find-your-azure-bots-appid-and-appsecret/

上检索应用程序密码。

按照步骤中的说明在仿真器中输入后。它说:“未经授权”。

作为消息传递端点,我把我的ngrok转发了URL。 (使用./ngrok http 3000检索)

我有什么想念的吗?要使此功能正常运行应该很简单吗?

1 个答案:

答案 0 :(得分:1)

对于Botkit与BotFramework一起使用,您只需要配置一些项目。将您的内容与以下内容进行比较,注意所有差异并进行适当的更改。我有这个简单的设置。

首先,如果您不知道它,这就是找到BotFramework appId和appPassword的方法。

导航到您的Azure机器人的资源组。在左侧菜单窗格中,选择“部署”。 enter image description here

然后选择漫游器部署,然后在菜单窗格中选择“输入”。然后,它将列出您的appId和appPassword。

enter image description here

将此代码放置在index.js文件中。请确保进行必要的npm安装。

const { MemoryStorage } = require('botbuilder');
const { Botkit, BotkitBotFrameworkAdapter } = require('botkit');
const path = require('path');

// Note: Ensure you have a .env file.
const ENV_FILE = path.join(__dirname, '.env');
require('dotenv').config({ path: ENV_FILE });

const storage = new MemoryStorage();

const controller = new Botkit({
  adapter: BotkitBotFrameworkAdapter,
  adapterConfig: {
    appId: process.env.MicrosoftAppId,
    appPassword: process.env.MicrosoftAppPassword
  },
  storage: storage,
  webhook_uri: '/api/messages',
});

controller.hears('hello', 'message', async function(bot, message) {
  await bot.reply(message, 'Hello yourself');
});

在具有以下设置的.env文件中包括您的appId和appPassword。

MicrosoftAppId=<appId>
MicrosoftAppPassword=<appPassword>

使用node index.js从项目的根目录运行机器人。

最后,在仿真器中,将消息传递终结点设置为http://localhost:3000/api/messages,并包括相同的“ Microsoft App Id”和“ Microsoft App password”凭据。

enter image description here

一旦安装了模拟器,请通过键入一条消息进行测试。该机器人期望“ hello”,并且只会响应该用户输入。

这时您应该很好走。

希望有帮助!