Botframework V4:在发送主动消息后更改对话框

时间:2018-11-08 16:20:04

标签: c# dialog botframework message proactive

我一直在使用V4 botframework SDK进行机器人构建,并且我们已经为各种目的创建了多个对话框。我们的对话框之一用于捕获用于在CRM环境中创建会议记录的数据。现在,我们希望在会议结束日期过去时向使用此对话框的用户发送一条主动消息。

作为概念证明,我创建了一个控制台应用程序,该应用程序创建一条主动消息并使用用户之前使用的相同通道将该消息发送给用户。这似乎可行,但是由于用户仍在我们的一个对话框中,因此用户无法响应此主动消息。我想发送一条主动消息,为用户启动一个新对话框。

此刻,这是我的代码:

using System;
using System.Threading.Tasks;
using Microsoft.Bot.Connector;
using Microsoft.Bot.Connector.Authentication;
using Microsoft.Bot.Schema;

namespace TestBotframeworkSdkProActiveMessages
{
    class Program
    {
        static void Main(string[] args)
        {
            SendProActiveMessgae().Wait();
        }

        private static async Task SendProActiveMessgae()
        {
            var uri = new Uri("https://smba.trafficmanager.net/emea/");
            var appId = "MYAPPID";
            var appSecret = "MYAPPSECRET";
            var connector = new ConnectorClient(uri, appId, appSecret);
            var convoId = "MYCONVERSATIONID";
            var activity = new Activity()
            {
                Type = ActivityTypes.Message,
                From = new ChannelAccount("BOTID", "KaiBot_DEV"),
                Recipient = new ChannelAccount("USERID", "User Name"),
                Conversation = new ConversationAccount(false, "personal", convoId),
                Text = "My bot's message"
            };
            try
            {
                MicrosoftAppCredentials.TrustServiceUrl( "https://smba.trafficmanager.net/emea/");
                await connector.Conversations.SendToConversationAsync(convoId, activity);
            }
            catch (Exception ex)
            {
            Console.WriteLine(ex.Message);
            }
        }
    }
}

0 个答案:

没有答案