Bagikan melalui


Mengirim pesan ke bot di Direct Line API 1.1

Penting

Artikel ini menjelaskan cara mengirim pesan ke bot menggunakan Direct Line API 1.1. Jika Anda membuat koneksi baru antara aplikasi klien dan bot, gunakan Direct Line API 3.0 sebagai gantinya.

Dengan menggunakan protokol Direct Line 1.1, klien dapat bertukar pesan dengan bot. Pesan-pesan ini dikonversi ke skema yang didukung bot (Bot Framework v1 atau Bot Framework v3). Klien dapat mengirim satu pesan per permintaan.

Mengirim pesan

Untuk mengirim pesan ke bot, klien harus membuat objek Pesan untuk menentukan pesan lalu mengeluarkan POST permintaan ke https://directline.botframework.com/api/conversations/{conversationId}/messages, menentukan objek Pesan dalam isi permintaan.

Cuplikan berikut memberikan contoh permintaan dan respons Kirim Pesan.

Minta

POST https://directline.botframework.com/api/conversations/abc123/messages
Authorization: Bearer RCurR_XV9ZA.cwA.BKA.iaJrC8xpy8qbOF5xnR2vtCX7CZj0LdjAPGfiCpg4Fv0
[other headers]
{
  "text": "hello",
  "from": "user1"
}

Respons

Ketika pesan dikirimkan ke bot, layanan merespons dengan kode status HTTP yang mencerminkan kode status bot. Jika bot menghasilkan kesalahan, respons HTTP 500 ("Kesalahan Server Internal") dikembalikan ke klien sebagai respons terhadap permintaan Kirim Pesannya. Jika POST berhasil, layanan mengembalikan kode status HTTP 204. Tidak ada data yang dikembalikan dalam isi respons. Pesan klien dan pesan apa pun dari bot dapat diperoleh melalui polling.

HTTP/1.1 204 No Content
[other headers]

Total waktu untuk permintaan/respons Kirim Pesan

Total waktu untuk MEMPOSTING pesan ke percakapan Direct Line adalah jumlah dari yang berikut ini:

  • Waktu transit untuk permintaan HTTP untuk melakukan perjalanan dari klien ke layanan Direct Line
  • Waktu pemrosesan internal dalam Direct Line (biasanya kurang dari 120ms)
  • Waktu transit dari layanan Direct Line ke bot
  • Waktu pemrosesan dalam bot
  • Waktu transit untuk respons HTTP untuk melakukan perjalanan kembali ke klien

Mengirim lampiran ke bot

Dalam beberapa situasi, klien mungkin perlu mengirim lampiran ke bot seperti gambar atau dokumen. Klien dapat mengirim lampiran ke bot baik dengan menentukan URL lampiran dalam objek Pesan yang dikirimnya menggunakan POST /api/conversations/{conversationId}/messages atau dengan mengunggah lampiran menggunakan POST /api/conversations/{conversationId}/upload.

Kirim lampiran menurut URL

Untuk mengirim satu atau beberapa lampiran sebagai bagian dari objek Pesan menggunakan POST /api/conversations/{conversationId}/messages, tentukan URL lampiran dalam array dan/atau attachments array pesanimages.

Mengirim lampiran dengan mengunggah

Seringkali, klien mungkin memiliki gambar atau dokumen pada perangkat yang ingin dikirim ke bot, tetapi tidak ada URL yang sesuai dengan file tersebut. Dalam situasi ini, klien dapat mengeluarkan POST /api/conversations/{conversationId}/upload permintaan untuk mengirim lampiran ke bot dengan mengunggah. Format dan konten permintaan akan bergantung pada apakah klien mengirim satu lampiran atau mengirim beberapa lampiran.

Mengirim lampiran tunggal dengan mengunggah

Untuk mengirim lampiran tunggal dengan mengunggah, terbitkan permintaan ini:

POST https://directline.botframework.com/api/conversations/{conversationId}/upload?userId={userId}
Authorization: Bearer SECRET_OR_TOKEN
Content-Type: TYPE_OF_ATTACHMENT
Content-Disposition: ATTACHMENT_INFO
[other headers]

[file content]

Dalam permintaan URI ini, ganti {conversationId} dengan ID percakapan dan {userId} dengan ID pengguna yang mengirim pesan. Di header permintaan, atur Content-Type untuk menentukan jenis lampiran dan atur Content-Disposition untuk menentukan nama file lampiran.

Cuplikan berikut memberikan contoh permintaan dan respons Kirim (tunggal) Lampiran.

Minta

POST https://directline.botframework.com/api/conversations/abc123/upload?userId=user1
Authorization: Bearer RCurR_XV9ZA.cwA.BKA.iaJrC8xpy8qbOF5xnR2vtCX7CZj0LdjAPGfiCpg4Fv0
Content-Type: image/jpeg
Content-Disposition: name="file"; filename="badjokeeel.jpg"
[other headers]

[JPEG content]

Respons

Jika permintaan berhasil, pesan dikirim ke bot saat unggahan selesai dan layanan mengembalikan kode status HTTP 204.

HTTP/1.1 204 No Content
[other headers]

Mengirim beberapa lampiran dengan mengunggah

Untuk mengirim beberapa lampiran dengan mengunggah, POST permintaan multipisah ke /api/conversations/{conversationId}/upload titik akhir. Atur Content-Type header permintaan ke multipart/form-data dan sertakan Content-Type header dan Content-Disposition header untuk setiap bagian untuk menentukan jenis dan nama file setiap lampiran. Dalam permintaan URI, atur userId parameter ke ID pengguna yang mengirim pesan.

Anda dapat menyertakan objek Pesan dalam permintaan dengan menambahkan bagian yang menentukan Content-Type nilai application/vnd.microsoft.bot.messageheader . Ini memungkinkan klien untuk menyesuaikan pesan yang berisi lampiran. Jika permintaan menyertakan Pesan, lampiran yang ditentukan oleh bagian lain dari payload ditambahkan sebagai lampiran ke Pesan tersebut sebelum dikirim.

Cuplikan berikut memberikan contoh permintaan dan respons Kirim (beberapa) Lampiran. Dalam contoh ini, permintaan mengirim pesan yang berisi beberapa teks dan lampiran gambar tunggal. Bagian tambahan dapat ditambahkan ke permintaan untuk menyertakan beberapa lampiran dalam pesan ini.

Minta

POST https://directline.botframework.com/api/conversations/abc123/upload?userId=user1
Authorization: Bearer RCurR_XV9ZA.cwA.BKA.iaJrC8xpy8qbOF5xnR2vtCX7CZj0LdjAPGfiCpg4Fv0
Content-Type: multipart/form-data; boundary=----DD4E5147-E865-4652-B662-F223701A8A89
[other headers]

----DD4E5147-E865-4652-B662-F223701A8A89
Content-Type: image/jpeg
Content-Disposition: form-data; name="file"; filename="badjokeeel.jpg"
[other headers]

[JPEG content]

----DD4E5147-E865-4652-B662-F223701A8A89
Content-Type: application/vnd.microsoft.bot.message
[other headers]

{
  "text": "Hey I just IM'd you\n\nand this is crazy\n\nbut here's my webhook\n\nso POST me maybe",
  "from": "user1"
}

----DD4E5147-E865-4652-B662-F223701A8A89

Respons

Jika permintaan berhasil, pesan dikirim ke bot saat unggahan selesai dan layanan mengembalikan kode status HTTP 204.

HTTP/1.1 204 No Content
[other headers]

Sumber Daya Tambahan: