Condividi tramite


Inviare e ricevere messaggi di testo

SI APPLICA A: SDK v4

Il modo principale in cui il bot comunicherà con gli utenti, e allo stesso modo riceverà le comunicazioni, è tramite attività di messaggistica. Alcuni messaggi possono contenere solo testo normale, mentre altri possono contenere contenuti più avanzati, ad esempio schede o allegati. Il gestore turni del bot riceve messaggi dall'utente e da lì è possibile inviare risposte all'utente stesso. L'oggetto contesto di turno fornisce i metodi per inviare messaggi di risposta all'utente. Questo articolo descrive come inviare messaggi di testo normale.

La sintassi markdown è supportata per la maggior parte dei campi di testo, ma il supporto può variare a seconda del canale.

Per un bot in esecuzione che invia e riceve messaggi, seguire le guide introduttive nella parte superiore del sommario o vedere l'articolo sul funzionamento dei bot, che include anche collegamenti a esempi disponibili per l'esecuzione personale.

Nota

Per creare agenti con la scelta di servizi di intelligenza artificiale, orchestrazione e conoscenze, è consigliabile usare Microsoft 365 Agents SDK. Agents SDK supporta C#, JavaScript o Python. Per altre informazioni su Agents SDK , vedere aka.ms/agents. Se si sta cercando una piattaforma agente basata su SaaS, prendere in considerazione Microsoft Copilot Studio. Se si dispone di un bot esistente compilato con Bot Framework SDK, è possibile aggiornare il bot ad Agents SDK. È possibile esaminare le modifiche e gli aggiornamenti principali in Bot Framework SDK per le linee guida per la migrazione di Agents SDK. I ticket di supporto per Bot Framework SDK non verranno più gestiti a partire dal 31 dicembre 2025.

Invio di un SMS

Per inviare un sms, specificare la stringa da inviare come attività:

Nei gestori di attività del bot, utilizzare il metodo SendActivityAsync dell'oggetto contesto di turno per inviare una singola risposta al messaggio. È anche possibile usare il metodo SendActivitiesAsync dell'oggetto per inviare più risposte contemporaneamente.

await turnContext.SendActivityAsync($"Welcome!");

Ricevere un messaggio di testo

Per gestire un messaggio di testo, utilizzare la proprietà text dell'oggetto attività .

Nei gestori di attività del bot usare il codice seguente per ricevere un messaggio.

var responseMessage = turnContext.Activity.Text;

Inviare un indicatore di digitazione

Gli utenti si aspettano una risposta tempestiva ai messaggi. Se il bot esegue alcune attività con esecuzione prolungata, ad esempio una chiamata a un server o una query, senza fornire all'utente alcuna indicazione sulla sua richiesta, l'utente potrebbe dimostrarsi impaziente e inviare messaggi aggiuntivi o dare semplicemente per scontato che il bot non funziona.

I bot dei canali Web Chat e Direct Line supportano l'invio di un'indicazione di digitazione per mostrare all'utente che il messaggio è stato ricevuto ed elaborato. Tuttavia, il bot deve lasciare che il turno venga terminato entro 15 secondi o che il servizio Connector si verifichi il timeout. Per i processi più lunghi, leggere altre informazioni sull'invio di messaggi proattivi.

L'esempio seguente illustra come inviare un'indicazione di digitazione tramite.

protected override async Task OnMessageActivityAsync(ITurnContext<IMessageActivity> turnContext, CancellationToken cancellationToken)
{
    if (string.Equals(turnContext.Activity.Text, "wait", System.StringComparison.InvariantCultureIgnoreCase))
    {
        await turnContext.SendActivitiesAsync(
            new Activity[] {
                new Activity { Type = ActivityTypes.Typing },
                new Activity { Type = "delay", Value= 3000 },
                MessageFactory.Text("Finished typing", "Finished typing"),
            },
            cancellationToken);
    }
    else
    {
        var replyText = $"Echo: {turnContext.Activity.Text}. Say 'wait' to watch me type.";
        await turnContext.SendActivityAsync(MessageFactory.Text(replyText, replyText), cancellationToken);
    }
}

Risorse aggiuntive

Passaggi successivi