Cakupan dan izin yang berlaku
Dokumen ini berlaku untuk jenis aplikasi berikut:- Aplikasi internal: Aplikasi yang dikembangkan oleh sebuah organisasi hanya untuk digunakan di dalam organisasi tersebut.
- Aplikasi perusahaan pihak ketiga: Aplikasi yang dikembangkan oleh ISV (Independent Software Vendor) dan disediakan agar dapat diinstal serta digunakan oleh berbagai organisasi.
- Aplikasi personal pihak ketiga: Aplikasi yang dikembangkan oleh penyedia solusi untuk pengguna DingTalk individu.
Izin
Sebelum memanggil DingTalk OpenAPI mana pun, pastikan aplikasi memiliki izin API yang diperlukan. Di konsol DingTalk Open Platform, selesaikan langkah-langkah berikut:- Buka halaman detail aplikasi yang dituju.
- Klik Informasi dasar > Kredensial dan informasi dasar.
- Di bagian “Kelola izin”, tambahkan izin API yang diperlukan (seperti “Baca kontak” atau “Dapatkan daftar acara”).
Prasyarat autentikasi
Sebelum memanggil API mana pun, dapatkanaccess_token yang valid untuk autentikasi dan verifikasi izin.
- Gunakan App Key / App Secret atau Client ID / Client Secret untuk mendapatkan
access_token. access_tokenbiasanya berlaku selama 7.200 detik. Simpan di cache dan muat ulang secara berkala.access_tokenyang tidak valid atau kedaluwarsa menyebabkan API mengembalikan kode error40001atau40014.
Metode 1: Paginasi nextToken
GunakannextToken sebagai kredensial kueri untuk membaca data secara berkelanjutan. Permintaan pertama tidak memerlukan nextToken. Untuk permintaan berikutnya, salin nilai nextToken dari respons sebelumnya ke permintaan saat ini untuk mengambil batch data berikutnya.
Alur permintaan
- Untuk permintaan pertama, jangan sertakan
nextToken. Server mengembalikan batch data pertama beserta nilainextToken. - Untuk permintaan berikutnya, sertakan nilai
nextTokendari respons sebelumnya sebagai parameter kueri untuk mengambil halaman berikutnya. - Ketika respons tidak lagi berisi
nextToken, berarti semua data telah diambil.
GET /v1.0/edu/grades/{identifier}/classes?nextToken=bGFzdD0xMTExMExMSZdGhlcnBhcmFtPXh4eCYuLi4u&maxResults=20
Istilah penting
nextToken: Kredensial string buram (opaque) yang dibuat oleh server dan menandai posisi konteks kueri saat ini. Klien harus meneruskannya apa adanya dan tidak boleh mengurai atau memodifikasinya.maxResults: Jumlah entri maksimum yang disarankan oleh klien. Ini bukan nilai pasti. Jumlah aktual yang dikembalikan dapat lebih sedikit, bergantung pada batas sisi server atau jumlah data yang tersisa.
Catatan
- Parameter
maxResultsmembatasi jumlah maksimum catatan yang dikembalikan per permintaan. Jangan melebihi 500 untuk menghindari latensi respons. - Paginasi mendalam dapat menurunkan performa. Kombinasikan paginasi dengan filter jendela waktu untuk mengurangi volume data.
Skenario yang disarankan
- Tugas sinkronisasi data (seperti sinkronisasi kontak atau pengambilan log)
- Ekspor set data besar
- Skenario dengan kebutuhan integritas data yang tinggi
Metode 2: Paginasi pageSize
Metode ini menggunakan logika paginasi tradisional dan cocok untuk API daftar sisi front-end (seperti daftar pengguna, daftar departemen, dan formulir persetujuan). Metode ini mengontrol pemuatan data menggunakan nomor halaman dan ukuran halaman.Alur permintaan
- Untuk permintaan pertama, atur
pageNumber=1dan tentukan jumlah catatan per halaman menggunakanpageSize. - Untuk setiap permintaan berikutnya, tingkatkan
pageNumberhingga volume data yang dikembalikan kurang daripageSize, yang biasanya menandakan halaman terakhir.
Catatan
- Mulai panggilan pertama dengan
pageNumber=1dan tingkatkan nomor halaman untuk setiap panggilan berikutnya. - Metode ini tidak cocok untuk pengambilan data dalam jumlah besar dengan frekuensi tinggi, karena dapat memengaruhi performa sisi server.
Istilah penting
pageNumber: Nomor halaman permintaan saat ini, dimulai dari 1.pageSize: Jumlah entri yang dikembalikan per halaman. Rentang yang disarankan adalah 10 hingga 200.
Skenario yang disarankan
- Integrasi dengan kontrol paginasi front-end (seperti paginasi tabel)
- Menampilkan data statis berskala kecil
- Penjelajahan halaman demi halaman yang dipicu oleh tindakan pengguna
Rekomendasi dan praktik terbaik
Panduan pemilihan
- API sinkronisasi inkremental (seperti penarikan langganan peristiwa atau pengambilan log perubahan): Gunakan metode nextToken untuk memastikan data tidak berulang atau terlewat.
- API tampilan daftar (seperti daftar karyawan atau daftar formulir persetujuan): Gunakan metode pageSize agar mudah diintegrasikan dengan komponen paginasi front-end.
Ringkasan praktik terbaik
- Untuk API sinkronisasi inkremental, gunakan Metode 1: Paginasi nextToken untuk memastikan data tidak berulang atau terlewat.
- Untuk API tampilan daftar, gunakan Metode 2: Paginasi pageSize agar mudah diintegrasikan dengan kontrol paginasi front-end.
- Terapkan mekanisme coba-lagi otomatis pada klien. Jika permintaan gagal karena
nextTokenyang tidak valid, kembali ke permintaan awal dan ambil kembali datanya. - Hindari nilai
maxResultsataupageSizeyang terlalu besar. Rentang yang disarankan adalah 10 hingga 200 untuk menyeimbangkan efisiensi transmisi jaringan dan kecepatan respons.