Получать уведомления, когда кто-то использовал ваш бот - PullRequest
0 голосов
/ 19 марта 2019

Я разрабатываю бота, который заменит контактную форму для компании.Есть ли простой способ для разработчика или компании получать уведомления, когда кто-то использовал бот?Я использую Microsoft Bot Framework и cosmosDB для хранения данных о состоянии.

1 Ответ

0 голосов
/ 20 марта 2019

Есть несколько способов сделать это.Вверху моей головы:

Вы можете установить электронную почту в качестве канала для вашего бота, но это просто означает, что пользователь будет общаться с вашим ботом по электронной почте.Но вы можете отслеживать контакты клиентов по этому адресу электронной почты.

В противном случае, как было сказано выше в D4CKCIDE, вы можете встроить некоторую простую логику для отправки уведомлений, как только в вашей логике бота появится определенный процесс.Например, я встроил быструю функцию отправки электронной почты с одного адреса электронной почты на другой (в данном случае с моей электронной почты outlook на мою почту gmail), как только будет выполнено действие 'speechUpdate', потому что это означает, что новый пользователь подключился кмой ботОн не отправляет мне всю историю, а просто пинг как напоминание, для целей отслеживания:

else if (turnContext.Activity.Type == ActivityTypes.ConversationUpdate)
{
    if (turnContext.Activity.MembersAdded != null)
    {
        // Iterate over all new members added to the conversation
        foreach (var member in turnContext.Activity.MembersAdded)
        {
            // Greet anyone that was not the target (recipient) of this message
            // the 'bot' is the recipient for events from the channel,
            // turnContext.Activity.MembersAdded == turnContext.Activity.Recipient.Id 
            // indicates the bot was added to the conversation.
            if (member.Id != turnContext.Activity.Recipient.Id)
            {
                await turnContext.SendActivityAsync($"Hi there - {member.Name}. {WelcomeMessage}", cancellationToken: cancellationToken);
                await turnContext.SendActivityAsync(InfoMessage, cancellationToken: cancellationToken);
                await turnContext.SendActivityAsync(PatternMessage, cancellationToken: cancellationToken);
            }
            EmailPingFunction();
        }
    }
}

Затем я построил функцию EmailPingFunction следующим образом:

private static void EmailPingFunction()
{
    // setup strings
    string sender = "BotsyJohnson@outlook.com";
    string password = "********"; // put your email's password here ^_^
    string recipient = "BotsyJohnson@gmail.com";

    // set the client:
    SmtpClient outlookSmtp = new SmtpClient("smtp-mail.outlook.com");

    // use the 587 TLS port
    outlookSmtp.Port = 587;

    // set the delivery method
    outlookSmtp.DeliveryMethod = SmtpDeliveryMethod.Network;

    // set the credentials
    outlookSmtp.UseDefaultCredentials = false;
    System.Net.NetworkCredential credentials =
    new System.Net.NetworkCredential(sender, password);
    outlookSmtp.Credentials = credentials;

    // enable SS1
    outlookSmtp.EnableSsl = true;

    // set up and send the MailMessage
    try
    {
        Console.WriteLine("start to send email over TLS...");
        MailMessage message = new MailMessage(sender, recipient);
        message.Subject = "This is a test of the not-emergency alert system";
        message.Body = "Someone just pinged your bot. Please go into your set storage account to review";
        outlookSmtp.Send(message);
        Console.WriteLine("email was sent successfully!");
    }
    catch (Exception ex)
    {
        Console.WriteLine("failed to send email with the following error:");
        Console.WriteLine(ex.Message);
    }
}

Просто дляПодчеркните, что сказал Николас Р., потому что он абсолютно прав: это обычай, и только один вариант того, как вы можете это сделать.Это простой и грязный вариант ОДНОГО способа создать какое-то уведомление.

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