我有以下代码:
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] });
}
}
当我在bot模拟器框架中运行bot时,看到登录按钮。但是,当我单击它时,它只会打开一个全为白色的空白登录窗口。
我还在Azure中配置了身份验证:
编辑:我还在.bot
文件中配置了应用ID和密码。
答案 0 :(得分:0)
有一个选项可以使用Azure Service Bus代替ngrok,它可能对您有用。它的功能大致相同,但除了其他好处外,还使您可以控制“隧道”时数据在何处传输。由于它是Azure服务,因此可以与您已经访问的订阅相同。
简而言之,您将创建一个本地客户端应用程序,该程序通过中继将您的机器人连接到Azure Service Bus服务。服务总线名称空间/中继将替换Azure中漫游器设置中的消息传递终结点(用于测试)。这样,您在本地主机上运行的机器人就可以连接到外部服务。只需确保在Azure机器人设置中使用的模拟器中使用相同的终结点,包括“ / api / messages”。
在here中找到的说明可以指导您完成设置和运行过程。这些步骤看起来有些冗长,但是过程本身相当简单。有两个选项可以构建:.NET Framework和.NET Core。我建议使用“框架”版本,除非您需要在Mac上运行它。这还不是官方的MS博客,但希望它能在那里出现。
希望有帮助!