【问题标题】:Botkit unauthorized when connecting through emulator (Microsoft Bot Framework)通过模拟器连接时未经授权的 Botkit (Microsoft Bot Framework)
【发布时间】:2019-07-10 03:11:31
【问题描述】:

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

botkit 指的是他们“开始”页面上的 yeoman 生成器:https://botkit.ai/getstarted.html

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

我去了我在 azure -> Settings 中创建的频道以获取我的 App 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检索)

我有什么遗漏吗?让它正常工作应该很简单吧?

【问题讨论】:

    标签: node.js azure botframework chatbot botkit


    【解决方案1】:

    要让 Botkit 与 BotFramework 一起工作,您只需要配置几个项目。将您拥有的内容与以下内容进行比较,注意任何差异,并进行适当的更改。我有这个简单的设置工作。

    首先,如果您不知道 BotFramework appId 和 appPassword,您可以通过以下方式找到它。

    导航到 Azure 机器人的资源组。在左侧菜单窗格中,选择部署。

    然后选择机器人部署并在菜单窗格中选择输入。这将列出您的 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');
    });
    

    在 .env 文件中包含您的 appId 和 appPassword,并进行以下设置。

    MicrosoftAppId=<appId>
    MicrosoftAppPassword=<appPassword>
    

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

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

    设置好模拟器后,输入消息进行测试。该机器人期待“你好”,并且只会响应该用户输入。

    此时你应该很高兴。

    希望有帮助!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-07-12
      • 1970-01-01
      • 1970-01-01
      • 2019-04-04
      • 2017-04-06
      • 2017-11-05
      相关资源
      最近更新 更多