> ## Documentation Index
> Fetch the complete documentation index at: https://help.dingtalk.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Konsep dasar

> Bagi developer baru di DingTalk Open Platform, halaman ini memperkenalkan console developer utama, sistem identitas inti, kredensial keamanan, dan sistem izin — lengkap dengan panduan cepat untuk memulai.

Dokumen ini adalah **panduan konsep dasar** untuk pengembangan di DingTalk Open Platform. Dokumen ini ditujukan bagi developer yang baru mengenal pengembangan DingTalk, dan membantu Anda memahami istilah inti, identifier identitas, serta sistem izin.

## Console admin utama

Dokumen ini mencakup tiga console utama. Gunakan yang sesuai dengan peran Anda:

### Developer Console

[DingTalk Developer Console](https://open-dev.dingtalk.io/#/index) adalah platform untuk mengelola pengembangan aplikasi. Developer dapat mengonfigurasi informasi aplikasi dan memantau status runtime aplikasi.

<Warning>
  Hanya Admin Organisasi dan Sub Admin yang diberi izin **Developer** sekaligus izin **Workbench Management** yang dapat mengakses Developer Console. Konfigurasikan izin Sub Admin di [DingTalk Admin Console](https://oa.dingtalk.io/).
</Warning>

### Admin Console

[DingTalk Admin Console](https://oa.dingtalk.io/) adalah platform inti tempat Admin Organisasi mengelola struktur organisasi, izin pengguna, dan konfigurasi workbench. Dari console ini, admin dapat mengimpor kontak, menyiapkan proses persetujuan, memberikan otorisasi Sub Admin, dan lainnya.

## Identifier identitas inti (sistem ID)

Dalam pengembangan DingTalk, membedakan "siapa" dari "aplikasi mana" sangatlah penting. Beberapa ID utama berikut didefinisikan:

### CorpId

Identifier unik untuk sebuah organisasi di DingTalk. Sebagian besar panggilan API tingkat organisasi memerlukan ID ini untuk autentikasi.

**Tempat menemukannya**: Masuk ke [DingTalk Developer Console](http://open-dev.dingtalk.io/) dan lihat `CorpId` organisasi di halaman **Home**.

### UserId

Identifier unik dari seorang karyawan tertentu dalam sebuah organisasi. ID ini digunakan pada API seperti mengirim pesan, membuat kueri profil, dan persetujuan. ID ini tidak dapat diubah.

**Tempat menemukannya**: Masuk ke [DingTalk Admin Console](http://oa.dingtalk.io/), buka **Contacts > User Management**, lalu klik nama karyawan untuk melihat `UserId`.

### UnionId

Identifier pengguna yang terpadu di berbagai aplikasi. Pengguna yang sama memiliki UnionId yang sama di seluruh aplikasi dalam akun Open Platform yang sama. ID ini digunakan untuk mengintegrasikan data antaraplikasi.

**Tempat menemukannya**: Panggil API [Query user details](/id/open/development/query-user-details) dengan userId pengguna untuk mengambil nilai parameter `unionid`.

### Unified App ID

ID yang unik secara global yang diberikan oleh DingTalk kepada semua jenis aplikasi. ID ini menyederhanakan integrasi lintas sistem dan secara bertahap menggantikan sistem AgentId/AppId lama.

**Tempat menemukannya**: Masuk ke [DingTalk Developer Console](http://open-dev.dingtalk.io/), buka halaman detail aplikasi, dan lihat di bawah **Credentials and Basic Information**.

### AgentId

Identifier kapabilitas untuk aplikasi internal (seperti aplikasi H5 dan mini program). ID ini terutama digunakan untuk API pengelolaan workbench (misalnya, mengonfigurasi halaman beranda).

**Tempat menemukannya**:

* AgentId untuk aplikasi H5 internal

* AgentId untuk mini program internal

## Kredensial keamanan dan izin (sistem Auth)

Bagian ini membahas bagian pengembangan yang paling rawan error, termasuk autentikasi panggilan API dan logika login senyap.

### Client ID / Client Secret

* **Definisi**: Pasangan kredensial identitas sebuah aplikasi (mirip username dan password).
* **Tujuan**: Digunakan untuk memperoleh `access_token`. Baik aplikasi internal maupun aplikasi pihak ketiga menggunakan mekanisme ini.
* **Catatan**: `Client Secret` adalah kunci privat. Simpan dengan aman dan jangan pernah membocorkannya.
* **Cara memperoleh**: Setelah Anda membuat aplikasi internal atau aplikasi perusahaan pihak ketiga di [DingTalk Developer Console](http://open-dev.dingtalk.io/), pasangan Client ID dan Client Secret akan dibuat secara otomatis.

### Catatan

Jika aplikasi internal diberi otorisasi untuk dikembangkan oleh penyedia layanan, penyedia layanan harus memperoleh otorisasi menggunakan **CustomKey** dan **CustomSecret**.

### access\_token

* **Definisi**: "Tiket" untuk memanggil OpenAPI.
* **Tujuan**: Kredensial ini harus disertakan pada setiap panggilan ke API yang terproteksi untuk memverifikasi permintaan.
* **Catatan**: Token umumnya berlaku selama 7.200 detik (2 jam). Meminta ulang token dalam masa berlaku akan otomatis memperbaruinya.
* **Cara memperoleh**:

  * Untuk aplikasi internal, panggil API [Obtain the access token of an internal app](/id/open/development/obtain-the-access-token-of-an-internal-app) untuk memperoleh access\_token.
  * Untuk aplikasi perusahaan pihak ketiga, panggil API untuk memperoleh access token dari organisasi yang diberi otorisasi oleh aplikasi pihak ketiga guna memperoleh access\_token.
* **Perbedaan**:

  * `access_token` aplikasi internal memiliki semua izin yang diminta oleh aplikasi tersebut.
  * `access_token` aplikasi pihak ketiga dibatasi pada cakupan yang diotorisasi oleh organisasi.

### authCode

**Definisi**: Kredensial utama yang digunakan untuk autentikasi identitas pengguna.

**Tujuan**: Digunakan untuk ditukar menjadi informasi identitas pengguna (seperti `userid`).

**Catatan**: Masa berlaku hanya 5 menit. Kredensial menjadi tidak valid setelah sekali digunakan dan tidak dapat dipakai ulang.

**Cara memperoleh**: Peroleh dengan memanggil API seperti getAuthCode dan requestAuthCode. Untuk detailnya, lihat [Autentikasi identitas (login senyap)](/id/open/development/sso-overview).

### jsapi\_ticket

**Definisi**: Digunakan untuk menghasilkan tanda tangan bagi JS API frontend.

**Tujuan**: Aplikasi mikro H5 memerlukannya untuk memanggil berbagai kapabilitas JSAPI yang disediakan DingTalk secara aman (seperti mengambil informasi pengguna, memulai obrolan, dan memanggil komponen native).

**Catatan**: Masa berlaku adalah 2 jam. Jika kedaluwarsa atau parameternya tidak konsisten, akan muncul error seperti "Failed to read jsapi ticket" atau "Signature verification failed".

**Cara memperoleh**: Gunakan `access_token` untuk memanggil API [Create a JSAPI ticket](/id/open/development/create-a-jsapi-ticket) guna memperolehnya.

## Panduan cepat

Pseudo-code berikut menunjukkan cara menggunakan `CorpId` dan `access_token` untuk melakukan panggilan API yang paling sederhana, sekaligus memverifikasi bahwa lingkungan Anda sudah dikonfigurasi dengan benar:

```text theme={"theme":{"light":"github-light","dark":"github-dark"}}
GET https://api.dingtalk.io/topapi/v2/user/get?access_token=ACCESS_TOKEN&userid=USERID
```

**Langkah-langkah**:

1. **Peroleh kredensial**: Gunakan `Client ID` dan `Client Secret` untuk memanggil API dan memperoleh `access_token`.
2. **Siapkan parameter**: Cari `UserId` pengguna mana pun di Admin Console.
3. **Ganti parameter**: Susun permintaan di atas dengan mengganti `ACCESS_TOKEN` dan `USERID`.
4. **Kirim permintaan uji**: Jika respons mengembalikan `"errcode": 0, "errmsg": "ok"`, berarti konfigurasi berhasil dan Anda dapat melanjutkan pengembangan lebih lanjut.

> Tip: Di produksi, gunakan HTTPS serta terapkan penanganan error dan mekanisme coba-lagi yang tepat.
