> ## 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.

# Mendapatkan ID pengguna berdasarkan unionId

> Panggil API DingTalk ini untuk mendapatkan userId karyawan berdasarkan unionId — identifier unik yang dihasilkan sistem dalam cakupan Akun Perusahaan developer.

# Mendapatkan ID pengguna berdasarkan unionId

## Deskripsi panggilan API

Sebuah unionId adalah identifier unik yang diberikan kepada karyawan dalam cakupan Akun Perusahaan developer saat ini dan dihasilkan oleh sistem:

* unionId karyawan yang sama berbeda-beda di setiap Akun Perusahaan developer.
* Dalam Akun Perusahaan developer yang sama, unionId bersifat unik dan tidak dapat diubah. Misalnya, beberapa aplikasi yang dikembangkan oleh penyedia layanan yang sama, atau beberapa akun aplikasi dalam skenario seperti login Pindai Kode QR, semuanya berbagi unionId yang sama.

## Permintaan

| **Informasi dasar**         |                                                                                                      |
| --------------------------- | ---------------------------------------------------------------------------------------------------- |
| URL HTTP                    | [https://api.dingtalk.io/topapi/user/getbyunionid](https://api.dingtalk.io/topapi/user/getbyunionid) |
| Metode HTTP                 | POST                                                                                                 |
| Tipe aplikasi yang didukung | appType-Aplikasi internal, appType-Aplikasi perusahaan pihak ketiga                                  |
| Izin yang diperlukan        | permission-qyapi\_get\_member-Izin baca untuk informasi pengguna                                     |

### Parameter kueri

| Nama          | Tipe   | Wajib | Contoh   | Deskripsi                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 |
| ------------- | ------ | ----- | -------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| access\_token | String | Ya    | be3Fxxxx | Kredensial aplikasi yang digunakan untuk memanggil API ini.  **Catatan**  Jika unionId diperoleh melalui **Login senyap**, Anda tidak dapat menggunakan token yang diperoleh dari login senyap untuk memanggil API ini. Anda harus memperoleh token baru menggunakan API di bawah ini.   - Untuk aplikasi internal, peroleh access\_token melalui API untuk mendapatkan [access\_token aplikasi internal](/id/open/development/obtain-orgapp-token). - Untuk aplikasi perusahaan pihak ketiga, peroleh access\_token melalui API untuk mendapatkan access\_token perusahaan pihak ketiga. |

### Isi permintaan

| Nama    | Tipe   | Wajib | Contoh             | Deskripsi                                                                                                                                                                                                                                                                                                      |
| ------- | ------ | ----- | ------------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| unionid | String | Ya    | z21HjQliSzpw0Yxxxx | Identifier unik karyawan dalam cakupan Akun Perusahaan developer saat ini. Identifier ini dihasilkan oleh sistem dan tidak berubah. Anda dapat memperoleh unionId dengan memanggil [Mendapatkan ID pengguna dengan kode login senyap](/id/open/development/obtain-the-userid-of-a-user-by-using-the-log-free). |

### Contoh permintaan

```curl theme={"theme":{"light":"github-light","dark":"github-dark"}}
curl -X POST "https://api.dingtalk.io/topapi/user/getbyunionid" \
-H 'Content-Type:application/x-www-form-urlencoded;charset=utf-8' \
-d 'access_token=6348d21e-fb41-4745-a214-95bcf8c118f0' \
-d 'unionid=z21HjQliSzpw0YWCNxmii6u2Os62cZ62iSZ'
```

Java

```text theme={"theme":{"light":"github-light","dark":"github-dark"}}
DingTalkClient client = new DefaultDingTalkClient("https://api.dingtalk.io/topapi/user/getbyunionid");
OapiUserGetbyunionidRequest req = new OapiUserGetbyunionidRequest();
req.setUnionid("z21HjQliSzpw0Yxxxxxx");
OapiUserGetbyunionidResponse rsp = client.execute(req, access_token);
System.out.println(rsp.getBody());
```

Python

```python theme={"theme":{"light":"github-light","dark":"github-dark"}}
import dingtalk.api

req=dingtalk.api.OapiUserGetbyunionidRequest("https://api.dingtalk.io/topapi/user/getbyunionid")
req.unionid="z21HjQliSzpw0YWCNxmii6u2Os62cZ62iSZ"
try:
  resp= req.getResponse(access_token)
  print(resp)
except Exception,e:
  print(e)
```

PHP

```php theme={"theme":{"light":"github-light","dark":"github-dark"}}
include "TopSdk.php";
date_default_timezone_set('Asia/Shanghai');

$c = new DingTalkClient(DingTalkConstant::$CALL_TYPE_OAPI, DingTalkConstant::$METHOD_POST , DingTalkConstant::$FORMAT_JSON);
$req = new OapiUserGetbyunionidRequest;
$req->setUnionid("z21HjQliSzpw0YWCNxmii6u2Os62cZ62iSZ");
$resp = $c->execute($req, $access_token, "https://api.dingtalk.io/topapi/user/getbyunionid");
```

C#

```text theme={"theme":{"light":"github-light","dark":"github-dark"}}
IDingTalkClient client = new DefaultDingTalkClient("https://api.dingtalk.io/topapi/user/getbyunionid");
OapiUserGetbyunionidRequest req = new OapiUserGetbyunionidRequest();
req.Unionid = "z21HjQliSzpw0YWCNxmii6u2Os62cZ62iSZ";
OapiUserGetbyunionidResponse rsp = client.Execute(req, access_token);
Console.WriteLine(rsp.Body);
```

## Respons

### Isi respons

| Nama          | Tipe                     | Contoh       | Deskripsi                                                           |
| ------------- | ------------------------ | ------------ | ------------------------------------------------------------------- |
| request\_id   | String                   | zcqi5450rpit | ID permintaan.                                                      |
| errcode       | Number                   | 0            | Kode pengembalian.                                                  |
| errmsg        | String                   | ok           | Deskripsi kode pengembalian.                                        |
| result        | UserGetByUnionIdResponse |              | Hasil yang dikembalikan.                                            |
| contact\_type | Number                   | 0            | Tipe kontak:   - **0**: Karyawan internal - **1**: Kontak eksternal |
| userid        | String                   | zhangsan     | ID pengguna dari pengguna tersebut.                                 |

### Contoh isi respons

```json theme={"theme":{"light":"github-light","dark":"github-dark"}}
{
  "errcode":"0",
  "errmsg":"ok",
  "result":{
   "contact_type":"0",
   "userid":"zhangsan"
  },
  "request_id": "zcqi5450rpit"
}
```

### Kode error

Jika terjadi error saat memanggil API ini, cari solusinya berdasarkan pesan error di dokumen [Kode error global](/id/open/development/server-api-error-codes-1).

| Kode error (errcode) | Pesan error (errmsg)                     | Solusi                              |
| -------------------- | ---------------------------------------- | ----------------------------------- |
| 60121                | The corresponding employee is not found. | Periksa apakah unionId sudah benar. |
| 400002               | Invalid parameter.                       | Periksa apakah unionId sudah benar. |
| -1                   | The system is busy.                      | Coba lagi nanti.                    |
