2

我正在开发 azure bot 服务,Bot 工作正常。聊天完成后,我需要将整个聊天对话作为副本发送到电子邮件。如何做到这一点?

4

1 回答 1

2

Bot Framework Service 不维护任何成绩单,这是您必须在您的 bot 中自己实现的内容。不过,您很幸运,因为 Bot Builder SDK 提供了一个中间件,名称恰当TranscriptLoggerMiddleware,可以为您执行此操作,并且可以使用您选择的后备存储进行配置。

盒子中附带的存储实现是AzureBlobTranscriptStore在对话的整个生命周期中都将附加到 blob 中。但是,如果您想使用另一种存储机制存储成绩单,那么您可以ITranscriptLogger自己实现(仅一种方法)并将其传递给中间件。

要设置中间件,您将在启动逻辑中执行以下操作:

public void ConfigureServices(IServiceCollection services)
{
    // Load the settings from config however you like
    var myAzureBlobTranscriptSettings = LoadMySettingsFromConfig();

    services.AddBot<MyBot>(options =>
    {
        // Register the middleware
        options.Middleware.Add(
           new TranscriptLogger(
               new AzureBlobTranscriptStore(
                 myAzureBlobTranscriptSettings.ConnectionString,
                 myAzureBlobTranscriptSettings.ContainerName)));
    });
}
于 2019-01-18T17:40:08.047 回答