0

我有以下代码:

import { ActivityTypes, CardFactory, TurnContext } from "botbuilder";

export class MyBot {
    /**
     * Handles incoming activity, received from a user, processes it, and replies as needed
     * @param {TurnContext} context on turn context object.
     */
    public onTurn = async (turnContext: TurnContext) => {
        const oauthCard = CardFactory.oauthCard("ms-graph", "Login", "Please sign in so I know who you are");
        return await turnContext.sendActivity({ attachments: [oauthCard] });
    }
}

当我在机器人模拟器框架中运行机器人时,我看到了登录按钮。但是,当我单击它时,它只会打开一个全白的空登录窗口。

我还在 Azure 中配置了身份验证:

在此处输入图像描述

编辑:我还在我的.bot文件中配置了应用程序 ID 和密码。

4

1 回答 1

0

有一个选项可以使用 Azure 服务总线代替 ngrok,这可能对您有用。它的功能几乎相同,但可以让您控制“隧道”时数据的传输位置,以及其他好处。由于它是一项 Azure 服务,因此它可以存在于您已经访问的同一个订阅中。

简而言之,你将创建一个本地客户端应用程序,通过中继将你的机器人连接到 Azure 服务总线服务。服务总线命名空间/中继替换 Azure 中机器人设置中的消息传递端点(用于测试)。通过这种方式,您在 localhost 上运行的机器人可以连接到外部服务。只需确保在模拟器中使用与 Azure 机器人设置相同的端点,包括“/api/messages”。

此处的说明可以指导您完成设置和运行过程。这些步骤看起来有点长,但过程本身相当简单。有两个构建选项:.NET Framework 和 .NET Core。我会推荐“框架”版本,除非你需要在 Mac 上运行它。这不是官方的 MS 博客(还),但希望它会出现在那里。

希望有帮助!

于 2019-01-21T23:20:01.280 回答