Langsung ke konten utama
Ketika pengguna @menyebut Bot grup atau mengirim pesan langsung ke Bot, DingTalk meneruskan konten pesan ke endpoint layanan HTTPS milik developer Bot. Topik ini menjelaskan protokol penerimaan pesan pada Bot.

Parameter HTTP header

Developer harus memverifikasi timestamp dan sign pada header untuk menentukan apakah permintaan tersebut merupakan permintaan sah dari DingTalk. Hal ini mencegah pihak jahat menyamar sebagai DingTalk untuk memanggil layanan HTTPS developer dan mengirimkan data. Logika verifikasinya adalah sebagai berikut:
  • Jika timestamp berbeda lebih dari 1 jam dari timestamp sistem saat ini, permintaan dianggap tidak valid.
  • Jika sign tidak cocok dengan nilai yang dihitung oleh developer, permintaan dianggap tidak valid.
Hanya ketika timestamp dan sign berhasil diverifikasi, permintaan dapat dianggap sebagai permintaan sah dari DingTalk.

Cara menghitung sign

Gunakan timestamp dari header + “\n” + appSecret Bot sebagai string yang akan ditandatangani. Hitung tanda tangan menggunakan algoritme HmacSHA256, lalu enkode hasilnya dengan Base64 untuk memperoleh nilai tanda tangan akhir. Contoh kode penghitungan tanda tangan (Java)

HTTP Body

Deskripsi parameter

Tipe pesan yang didukung untuk penerimaan

Saat ini Bot mendukung penerimaan pesan teks, suara, gambar, file, video, dan teks kaya. Tabel berikut menjelaskan bidang untuk setiap tipe pesan yang diterima Bot. Selain bidang tipe pesan dan isi pesan, semua bidang parameter lainnya sama seperti pada tabel di atas.

Penting

  • Dalam obrolan grup: ketika anggota grup @menyebut Bot, Bot tidak mendukung penerimaan tipe suara, file, atau video.
  • Dalam obrolan orang-ke-orang: Bot tidak mendukung penerimaan tipe suara, file, atau video.
  • Dalam obrolan orang-ke-Bot: Bot mendukung penerimaan tipe suara, file, dan video.

Pesan teks

Deskripsi parameter:

Pesan suara

Deskripsi parameter:

Pesan gambar

Deskripsi parameter:

Pesan video

Deskripsi parameter:

Pesan file

Deskripsi parameter:

Pesan teks kaya

Deskripsi parameter:

Format respons HTTP

Developer dapat memilih untuk membalas dengan pesan sesuai kebutuhan bisnis mereka. Saat ini terdapat lima tipe pesan yang didukung: text, markdown, actionCard lompat-keseluruhan, actionCard lompat-mandiri, dan feedCard.