Botframework ';访问控制允许原点';在本地测试中使用bot向已知用户发送通知时出错

Botframework ';访问控制允许原点';在本地测试中使用bot向已知用户发送通知时出错,botframework,microsoft-teams,Botframework,Microsoft Teams,我正在尝试使用bot框架从本地加载的团队选项卡发送用户通知 我创建了机器人并部署到Azure bot可以很好地使用示例代码回复用户发送给它的任何内容 但是,当我试图使用Teams选项卡中的按钮(我写这个是为了测试发送通知)来触发向用户发送通知的事件时,控制台日志显示了错误: 代码段: private buttonClicked = () => { const address = { channelId: 'msteams',

我正在尝试使用bot框架从本地加载的团队选项卡发送用户通知

  • 我创建了机器人并部署到Azure
  • bot可以很好地使用示例代码回复用户发送给它的任何内容
  • 但是,当我试图使用Teams选项卡中的按钮(我写这个是为了测试发送通知)来触发向用户发送通知的事件时,控制台日志显示了错误:
  • 代码段:

        private buttonClicked = () => {
            const address =
            {
                channelId: 'msteams',
                user: { id: '{myUserId}' },
                channelData: {
                    tenant: {
                        id: '{myTenantId}'
                    }
                },
                notification: {
                    alert: true
                },
                bot:
                {
                    id: '{mybotid}',
                    name: 'Test Bot'
                },
                serviceUrl: 'https://smba.trafficmanager.net/amer/'
            }
            const connector = new builder.ChatConnector({
                appId: process.env.MicrosoftAppId,
                appPassword: process.env.MicrosoftAppPassword,
            });
            const bot = new builder.UniversalBot(connector);
            const msg = new builder.Message().address(address);
            msg.text('Hello, this is a notification');
            msg.summary('This is  a summary');
            bot.send(msg);
        }
    
    看起来我需要设置承载令牌:

    但在发送消息时,我应该如何设置此设置


    感谢您的帮助

    您的设置有点让人费解,但听起来好像您正试图通过ngrok将本地运行的团队实例连接到Azure部署的机器人。如果是这种情况,那么您需要在bot上启用CORS以接受本地主机地址

    为此,请为部署的bot打开Azure资源组。然后,选择应用程序服务

    接下来,在左侧菜单上,向下滚动到API部分并选择“CORS”

    最后,

    • 选中“启用访问控制允许凭据”复选框,然后
    • 将您的本地主机地址添加到列表中
    • 单击保存
    如果您的本地主机经常更改,请阅读复选框上方列出的说明(如果您使用免费的ngrok服务,可能会出现这种情况)


    希望有帮助

    你能分享你正在使用的ngrok命令吗?你还在面对这个问题吗?嗨,瓦吉德。是的,这仍然是一个问题,我将bot部署到azure。我按照您所说的进行了配置,但仍然收到相同的CORS错误消息。@LifeiWang,抱歉-我刚刚看到您的响应。你还对此有意见吗?
        private buttonClicked = () => {
            const address =
            {
                channelId: 'msteams',
                user: { id: '{myUserId}' },
                channelData: {
                    tenant: {
                        id: '{myTenantId}'
                    }
                },
                notification: {
                    alert: true
                },
                bot:
                {
                    id: '{mybotid}',
                    name: 'Test Bot'
                },
                serviceUrl: 'https://smba.trafficmanager.net/amer/'
            }
            const connector = new builder.ChatConnector({
                appId: process.env.MicrosoftAppId,
                appPassword: process.env.MicrosoftAppPassword,
            });
            const bot = new builder.UniversalBot(connector);
            const msg = new builder.Message().address(address);
            msg.text('Hello, this is a notification');
            msg.summary('This is  a summary');
            bot.send(msg);
        }