通过模拟器连接时 Botkit 未经授权(Microsoft Bot Framework)
Botkit unauthorized when connecting through emulator (Microsoft Bot Framework)
我想设置 botkit 以使用 Microsoft Bot Framework。
botkit 指的是他们 "Get started" 页面上的 yeoman 生成器:https://botkit.ai/getstarted.html
此生成器要求应用程序 ID 和应用程序密码。
我在 azure 中转到我创建的频道 -> 设置以获取我的 App id。从 "Microsoft App ID" 复制值并将鼠标悬停在信息图标上告诉我单击 "Manage" 以获取密码。
单击 "Manage" 后我进入了 "Not found" 页面。 (根据旧文章,这应该有效,我猜这是因为迁移?https://docs.microsoft.com/en-us/azure/bot-service/bot-service-quickstart-registration?view=azure-bot-service-3.0)
之后我在此处关注了一篇关于检索应用密码的微软博客post:https://blog.botframework.com/2018/07/03/find-your-azure-bots-appid-and-appsecret/
按照步骤中的说明在模拟器中输入此内容后。它说:"Unauthorized"。
作为消息传递端点,我转发了我的 ngrok url。 (使用 ./ngrok http 3000
检索)
有什么我遗漏的吗?让它正常工作应该非常简单,不是吗?
要让 Botkit 与 BotFramework 一起工作,您只需要配置几个项目。将您拥有的与以下内容进行比较,注意任何差异,并进行适当的更改。我有这个简单的设置工作。
首先,如果您不知道,这是找到 BotFramework appId 和 appPassword 的方法。
导航到 Azure 机器人的资源组。在左侧菜单窗格中,select 部署。
然后 select 机器人部署和 select 在菜单窗格中输入。然后这将列出您的 appId 和 appPassword。
将此代码放入您的 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');
});
通过以下设置将您的 appId 和 appPassword 包含在 .env 文件中。
MicrosoftAppId=<appId>
MicrosoftAppPassword=<appPassword>
运行 项目根目录中的 bot node index.js
.
最后,在模拟器中,将消息传递端点设置为 http://localhost:3000/api/messages
并包含相同的 'Microsoft App Id' 和 'Microsoft App password' 凭据。
设置模拟器后,通过键入消息进行测试。机器人期待 'hello' 并且只会响应该用户输入。
此时你应该可以开始了。
希望得到帮助!
我想设置 botkit 以使用 Microsoft Bot Framework。
botkit 指的是他们 "Get started" 页面上的 yeoman 生成器:https://botkit.ai/getstarted.html
此生成器要求应用程序 ID 和应用程序密码。
我在 azure 中转到我创建的频道 -> 设置以获取我的 App id。从 "Microsoft App ID" 复制值并将鼠标悬停在信息图标上告诉我单击 "Manage" 以获取密码。 单击 "Manage" 后我进入了 "Not found" 页面。 (根据旧文章,这应该有效,我猜这是因为迁移?https://docs.microsoft.com/en-us/azure/bot-service/bot-service-quickstart-registration?view=azure-bot-service-3.0)
之后我在此处关注了一篇关于检索应用密码的微软博客post:https://blog.botframework.com/2018/07/03/find-your-azure-bots-appid-and-appsecret/
按照步骤中的说明在模拟器中输入此内容后。它说:"Unauthorized"。
作为消息传递端点,我转发了我的 ngrok url。 (使用 ./ngrok http 3000
检索)
有什么我遗漏的吗?让它正常工作应该非常简单,不是吗?
要让 Botkit 与 BotFramework 一起工作,您只需要配置几个项目。将您拥有的与以下内容进行比较,注意任何差异,并进行适当的更改。我有这个简单的设置工作。
首先,如果您不知道,这是找到 BotFramework appId 和 appPassword 的方法。
导航到 Azure 机器人的资源组。在左侧菜单窗格中,select 部署。
然后 select 机器人部署和 select 在菜单窗格中输入。然后这将列出您的 appId 和 appPassword。
将此代码放入您的 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');
});
通过以下设置将您的 appId 和 appPassword 包含在 .env 文件中。
MicrosoftAppId=<appId>
MicrosoftAppPassword=<appPassword>
运行 项目根目录中的 bot node index.js
.
最后,在模拟器中,将消息传递端点设置为 http://localhost:3000/api/messages
并包含相同的 'Microsoft App Id' 和 'Microsoft App password' 凭据。
设置模拟器后,通过键入消息进行测试。机器人期待 'hello' 并且只会响应该用户输入。
此时你应该可以开始了。
希望得到帮助!