Bagikan melalui


Mengirim dan menerima pesan teks

BERLAKU UNTUK: SDK v4

Cara utama bot Anda akan berkomunikasi dengan pengguna, dan juga menerima komunikasi, adalah melalui aktivitas pesan . Beberapa pesan mungkin hanya berisi teks biasa, sementara pesan lain mungkin berisi konten yang lebih kaya seperti kartu atau lampiran. Penangan giliran bot Anda menerima pesan dari pengguna, dan Anda dapat mengirim respons kepada pengguna dari sana. Objek konteks giliran menyediakan metode untuk mengirim pesan kembali ke pengguna. Artikel ini menjelaskan cara mengirim pesan teks biasa.

Markdown didukung untuk sebagian besar bidang teks, tetapi dukungan dapat bervariasi menurut saluran.

Untuk bot yang sedang berjalan mengirim dan menerima pesan, ikuti mulai cepat di bagian atas daftar isi atau lihat artikel tentang cara kerja bot, yang juga menautkan ke sampel yang tersedia untuk Anda jalankan sendiri.

Catatan

Bot Framework JavaScript, C#, dan Python SDK akan terus didukung, namun, Java SDK dihentikan dengan dukungan jangka panjang akhir yang berakhir pada November 2023.

Bot yang ada yang dibangun dengan Java SDK akan terus berfungsi.

Untuk pembuatan bot baru, pertimbangkan untuk menggunakan Power Virtual Agents dan baca tentang memilih solusi chatbot yang tepat.

Untuk informasi selengkapnya, lihat Masa depan pembuatan bot.

Mengirim pesan teks

Untuk mengirim pesan teks, tentukan string yang ingin Anda kirim sebagai aktivitas:

Di penangan aktivitas bot, gunakan metode objek SendActivityAsync konteks giliran untuk mengirim satu respons pesan. Anda juga dapat menggunakan metode objek SendActivitiesAsync untuk mengirim beberapa respons sekaligus.

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

Menerima pesan teks

Untuk menangani pesan teks, gunakan properti teks objek aktivitas.

Di penanganan aktivitas bot, gunakan kode berikut untuk menerima pesan.

var responseMessage = turnContext.Activity.Text;

Mengirim indikator pengetikan

Pengguna mengharapkan respons tepat waktu terhadap pesan mereka. Jika bot Anda melakukan beberapa tugas jangka panjang seperti memanggil server atau menjalankan kueri tanpa memberi pengguna beberapa indikasi bahwa bot mendengarnya, pengguna bisa tidak sabar dan mengirim pesan tambahan atau hanya menganggap bot rusak.

Bot saluran Web Chat dan Direct Line dapat mendukung pengiriman indikasi pengetikan untuk menunjukkan kepada pengguna bahwa pesan diterima dan sedang diproses. Namun, bot Anda harus membiarkan belokan berakhir dalam waktu 15 detik atau layanan Koneksi or akan kehabisan waktu. Untuk proses yang lebih lama, baca selengkapnya tentang mengirim pesan proaktif.

Contoh berikut menunjukkan cara mengirim indikasi pengetikan.

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);
    }
}

Sumber Daya Tambahan:

Langkah berikutnya