英文:
Bot Framework Emulator - Cannot Post Activity (Error 401: Unauthorized)
问题
-
我目前正在尝试为我的组织创建一个聊天机器人。它旨在简单且易于使用。
-
我首先使用了Azure的语言服务来创建一个自定义问答解决方案。
-
一旦语言模型部署到一个端点,我使用了内置的'创建一个机器人'按钮来在我们的Azure订阅中生成一个机器人。
现在,这可以工作,并生成一个可以在不同应用程序中使用的聊天机器人。但是,我的目标是能够测试对机器人代码的更改,而不必将它们上传到Azure的云中。 -
所以,我下载了机器人的源代码,并将其存储在我的GitHub帐户上的一个公共存储库中。
-
最后,我进入了一个虚拟机器人(没有可用的公共IP - 组织限制),克隆了存储库,然后使用'npm install'和'npm start'组合在Bot Framework Emulator中本地启动机器人。
我意识到由于gitignore的原因没有.env文件,所以我创建了一个并添加了以下行:
LanguageServiceEndpointHostName=...
LanguageServiceEndpointKey=...
MicrosoftAppId=...
MicrosoftAppTenantId=...
MicrosoftAppType=...
ProjectName=...
英文:
I am currently trying to create a chatbot for my organization. It is meant to be simple, and easy to use.
-
I started by using Azure's Language Service to create a Custom Question Answer Solution
-
Once the language model was deployed to an endpoint, I used the built-in 'Create a Bot' button to generate a bot in our Azure subscription
Now, this works, and produces a chatbot that can be used in different applications. But, my goal is to be able to test changes to the bot code, without having to upload them to Azure's cloud. -
So, I downloaded the bot's source code, and stored that in a public repository on my GitHub account
-
Lastly, I entered a virtual machine (no public IP available - organization restrictions), cloned the repository, then used the 'npm install' and 'npm start' combo to start the bot locally with the Bot Framework Emulator
I realized that there was no .env file because of gitignore, so I created one and added the lines:
LanguageServiceEndpointHostName=...
LanguageServiceEndpointKey=...
MicrosoftAppId=...
MicrosoftAppTenantId=...
MicrosoftAppType=...
ProjectName=...
答案1
得分: 0
这通常是一个应用程序设置问题。在 Bot Framework 中,有许多不同的应用程序设置。您有您的 Azure 机器人、Azure 应用服务、Azure 应用注册,可能还有一个 Teams 清单。
在本地调试时,只要您没有实施 SSO 或其他 oAuth 配置,尝试将 Azure 机器人应用程序设置设置为空字符串,然后运行模拟器。
MicrosoftAppId=""
MicrosoftAppTenantId=""
MicrosoftAppType=""
如果启用了身份验证,我建议在本地运行 ngrok,将 Azure 机器人资源配置中的消息端点更新为 ngrok URL + /api/messages。然后,您可以在您激活的通道中实时调试,例如 MS Teams。
英文:
This is usually an app settings issue. With Bot Framework there are a lot of different app settings. You have your Azure Bot, Azure App Service, Azure App Registration, potentially a Teams manifest as well.
When debugging locally, and as long as you haven't implemented SSO or some other oAuth config, try to set the Azure Bot app settings to empty strings and run the emulator.
MicrosoftAppId=""
MicrosoftAppTenantId=""
MicrosoftAppType=""
If you have authentication enabled then I suggest to run ngrok locally, update your Azure Bot resource Configuration messaging endpoint to the ngrok url + /api/messages. Then you can debug live in the channel you have activated EG MS Teams.
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论