Отправить Проактивное письмо в Botframework C # SDK - PullRequest
0 голосов
/ 17 сентября 2018

У меня есть бот с интегрированным LUIS, я эмулировал его для базовых текстовых ответов, таких как ответ на приветствие, с ответным приветствием.

Теперь я хочу добавить дополнительное сообщение в NoneIntent, чтобы, когда сообщение, отправленное боту, классифицировалось как принадлежащее NoneIntent, бот отправлял по электронной почте почтовый ящик (службу поддержки), так как он призывал к действию вместе с ответомс текстовым ответом.

Пока у меня есть:

 [LuisIntent("None")]
        public async Task NoneIntent(IDialogContext context, LuisResult result)
        {
            //Send call to action email here

            // The text response given back to the user in the bot channel
            await context.PostAsync("I'm sorry, I don't understand your question :(");

        }

1 Ответ

0 голосов
/ 17 сентября 2018

Чтобы отправить проактивное электронное сообщение в C # через вашего бота, вам нужно настроить почтовый канал для вашего бота, а затем настроить новое почтовое сообщение (вместе с соединителем) в вашем коде:

var botAccount = new ChannelAccount(name: $"{ConfigurationManager.AppSettings["BotId"]}", id: $"{ConfigurationManager.AppSettings["BotEmail"]}".ToLower()); //taken from the email channel on your bot config
var userAccount = new ChannelAccount(name: "Name", id: $"{ConfigurationManager.AppSettings["UserEmail"]}"); //the email account you are sending your messages to
MicrosoftAppCredentials.TrustServiceUrl(@"https://email.botframework.com/", DateTime.MaxValue);
var connector = new ConnectorClient(new Uri("https://email.botframework.com/" ));
var conversationId = await connector.Conversations.CreateDirectConversationAsync(botAccount, userAccount);
IMessageActivity message = Activity.CreateMessageActivity();
message.From = botAccount;
message.Recipient = userAccount;
message.Conversation = new ConversationAccount(id: conversationId.Id);
message.Text = "This is the content text of an email!";
message.Locale = "en-Us";


try
{
    await connector.Conversations.SendToConversationAsync((Activity)message);
}
catch (ErrorResponseException e)
{
    Console.WriteLine("Error: ", e.StackTrace);
}

Требуется новый разговор, поскольку у вас нет сохраненного контекста для отправки нового электронного письма, если вы не отвечаете непосредственно на электронное письмо из своей учетной записи службы поддержки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...