Отправить смс уведомление пользователю, когда его / ее аккаунт заблокирован, как я могу это сделать в C # - PullRequest
1 голос
/ 17 мая 2019

Информация о боте SDK: C # Активные каналы: SMS (Twilio) Версия бота: v4.4.3

Описание проблемы: Я хотел бы иметь возможность отправлять проактивные сообщения через SMS-сообщения. Когда учетная запись пользователя заблокирована, у меня есть номер телефона этого человека, и я хочу отправить уведомление, например: «Ваша учетная запись заблокирована, пожалуйста, сделайте что-нибудь». Это возможно? я проверил документацию о проактивном сообщении, которое получает "ConversationReference" через "активность", я не знаю с номером телефона, могу ли я создать объект "ConversationReference", и как сообщить боту о номере телефона через уведомление контроллер.

Спасибо.

Ответы [ 2 ]

2 голосов
/ 18 мая 2019

Разработчик Twilio здесь.

Если у вас еще нет ссылки на беседу из предыдущей беседы, то в документации не ясно, как начать беседу. В этом случае может быть проще отправить пользователю SMS-сообщение напрямую, используя Twilio API .

1 голос
/ 20 мая 2019

К счастью, в отличие от большинства каналов, вы можете создать ссылку на разговор без необходимости, чтобы пользователь сначала сообщал боту, так как вы знаете номер пользователя и у вас есть номер бота.Посмотрите на фрагмент кода ниже.Вы можете отправить проактивное сообщение на номер телефона, отправив запрос на получение http://localhost:3978/api/notify/+1##########

using Microsoft.Bot.Connector.Authentication;

[HttpGet("{number}")]
public async Task<IActionResult> Get(string number)
{
    MicrosoftAppCredentials.TrustServiceUrl("https://sms.botframework.com/"); 

    var conversationReference = new ConversationReference {
        User = new ChannelAccount { Id = number },
        Bot = new ChannelAccount { Id = "<BOT_NUMBER>" },
        Conversation = new ConversationAccount { Id = number },
        ServiceUrl = "https://sms.botframework.com/"
    };

    await ((BotAdapter)_adapter).ContinueConversationAsync(_appId, conversationReference, BotCallback, default(CancellationToken));

    // Let the caller know proactive messages have been sent
    return new ContentResult()
    {
        Content = "<html><body><h1>Proactive messages have been sent.</h1></body></html>",
        ContentType = "text/html",
        StatusCode = (int)HttpStatusCode.OK,
    };
}

private async Task BotCallback(ITurnContext turnContext, CancellationToken cancellationToken)
{
    await turnContext.SendActivityAsync("proactive hello");
}

Для получения дополнительной информации об отправке проактивных сообщений см. Образец проактивного сообщения .

Надеюсь, это поможет.

...