我从 LUIS 模板在 Azure 中创建了一个 Bot App Service,并配置了持续集成。Bot Service 是一个函数应用程序,可在本地和 Azure 的 web 窗口内以及dev.botframework.com上运行。
我的目标是将一个基本的 HTML 页面部署到我的应用服务的根目录BOT_NAME.azurewebsites.net
。
当前解决的尝试:
我已经配置了网络聊天并有一个这样的 I-Frame:
<iframe src='https://webchat.botframework.com/embed/<BOT_NAME>?s=<SECRET>'></iframe>
我试图run.csx
用以下内容修改文件:
var response = req.CreateResponse(HttpStatusCode.OK);
var stream = new FileStream(@"index.html", FileMode.Open);
response.Content = new StreamContent(stream);
response.Content.Headers.ContentType = new MediaTypeHeaderValue("text/html");
return req.CreateResponse(HttpStatusCode.Accepted);
这正确显示index.html
在localhost:3979/api/messages
。部署到 Azure 时,我尝试完全限定index.html
为d:\home\site\wwwroot\index.html
,但<BOT_NAME>.azurewebsites.com/api/messages
返回以下内容:
The HTTP 'GET' method is not supported by the 'GenericJsonWebHookReceiver' WebHook receiver
我创建了一个新的函数应用程序(不是机器人应用程序),以启动基本 HTML 文件并利用 Azure 的网络代理功能将 URL 映射\wwwroot\index.html
到\
. 这可行,但它将应用程序隔离到两个存储库中,因此感觉不实用。
我也尝试修改function.json
以包含"authLevel": "anonymous"
无济于事。
请帮忙!我真的很感激,因为我不知道实施这种解决方案的最佳实践。在 Azure 中,所有开箱即用的机器人模板现在都是功能应用程序,因此任何希望启动 HTML 机器人页面的人都可能需要详细信息。谢谢!
示例解决方案包含以下内容: