> ## 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 informasi dasar pengguna

> Panggil API DingTalk ini untuk mendapatkan informasi dasar pengguna melalui authorization_code SSO — solusi identifikasi identitas pada skenario SSO DingTalk bagi pengembang.

Panggil API ini untuk mendapatkan informasi dasar pengguna melalui authorization\_code login senyap.

## Permintaan

| **Informasi dasar**         |                                                                                                                  |
| --------------------------- | ---------------------------------------------------------------------------------------------------------------- |
| URL HTTP                    | [https://api.dingtalk.io/v1.0/sns/getuserinfo\_bycode](https://api.dingtalk.io/v1.0/sns/getuserinfo_bycode)      |
| Metode HTTP                 | POST                                                                                                             |
| Tipe aplikasi yang didukung | appType-Aplikasi internalappType-Aplikasi perusahaan pihak ketiga                                                |
| Izin                        | permission-open\_app\_api\_base-Izin dasar untuk mendapatkan kredensial akses pengguna bagi API terbuka DingTalk |

### Parameter query

| Nama      | **Tipe** | Wajib | Deskripsi                                                                                                                                                                   |
| --------- | -------- | ----- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| accessKey | String   | Ya    | AppId dari aplikasi.                                                                                                                                                        |
| timestamp | String   | Ya    | Stempel waktu saat ini, dalam milidetik.                                                                                                                                    |
| signature | String   | Ya    | Nilai tanda tangan yang dihitung menggunakan algoritme HmacSHA256, dengan timestamp+"\n"+AppSecret sebagai string tanda tangan dan AppSecret sebagai kunci penandatanganan. |

### Isi permintaan

| Nama            | Tipe   | Wajib | Deskripsi                                                                                                                                                                                            |
| --------------- | ------ | ----- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| tmp\_auth\_code | String | Ya    | authorization\_code login senyap yang diberikan pengguna kepada aplikasi terbuka DingTalk. Dapatkan dengan memanggil JSAPI `dd.getAuthCode`. Lihat authorization\_code login senyap untuk detailnya. |

### Contoh permintaan

```curl theme={"theme":{"light":"github-light","dark":"github-dark"}}
curl -X POST "https://api.dingtalk.io/v1.0/sns/getuserinfo_bycode" \
-H 'Content-Type:application/x-www-form-urlencoded;charset=utf-8' \
-d 'tmp_auth_code=abcdef'
```

Java

```java theme={"theme":{"light":"github-light","dark":"github-dark"}}
DefaultDingTalkClient  client = new DefaultDingTalkClient("https://api.dingtalk.io/v1.0/sns/getuserinfo_bycode");
// Jika kelas ini tidak ada di SDK Anda, unduh SDK terbaru
OapiSnsGetuserinfoBycodeRequest req = new OapiSnsGetuserinfoBycodeRequest();
req.setTmpAuthCode("4a2c5695b78738d495f47b5fee9160cd");
OapiSnsGetuserinfoBycodeResponse response = client.execute(req,"yourAppId","yourAppSecret");
```

Python

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

req = dingtalk.api.OapiSnsGetuserinfoBycodeRequest("https://api.dingtalk.io/v1.0/sns/getuserinfo_bycode")
req.tmp_auth_code = "abcdef"
try:
  resp = req.getResponse("yourAppId", "yourAppSecret")
  print(resp)
except Exception as 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 OapiSnsGetuserinfoBycodeRequest;
$req->setTmpAuthCode("abcdef");
$resp = $c->execute($req,"yourAppId","yourAppSecret", "https://api.dingtalk.io/v1.0/sns/getuserinfo_bycode");
```

C#

```csharp theme={"theme":{"light":"github-light","dark":"github-dark"}}
IDingTalkClient client = new DefaultDingTalkClient("https://api.dingtalk.io/v1.0/sns/getuserinfo_bycode");
OapiSnsGetuserinfoBycodeRequest req = new OapiSnsGetuserinfoBycodeRequest();
req.TmpAuthCode = "abcdef";
OapiSnsGetuserinfoBycodeResponse rsp = client.Execute(req, "yourAppId", "yourAppSecret");
Console.WriteLine(rsp.Body);
```

## Respons

### Contoh isi respons

```json theme={"theme":{"light":"github-light","dark":"github-dark"}}
{
  "errcode": 0,
  "errmsg": "ok",
  "user_info": {
    "nick": "Budi",
    "unionid": "Wzh9KbyaCZxxx",
    "openid": "EtiiaAu3Yf9Ruxxx",
    "main_org_auth_high_level": true
  }
}
```

### Kode error

Jika terjadi error saat memanggil API ini, lihat dokumen [kode error global](/id/open/development/server-api-error-codes-1) untuk menemukan solusi berdasarkan pesan error.

| **Kode error** | **Deskripsi**                                                                                                                                                     |
| -------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| 853002         | Parameter timestamp tidak valid. Nilainya berbeda dari waktu saat ini pada server DingTalk lebih dari 1 menit.                                                    |
| 853001         | Format parameter timestamp salah. Nilainya harus berupa waktu saat ini dalam milidetik.                                                                           |
| 853003         | Parameter accessKey tidak valid. Nilainya harus berupa appId yang ada di DingTalk Open Platform.                                                                  |
| 853004         | Parameter signature salah dan tidak cocok dengan tanda tangan yang dihitung oleh server DingTalk. Perhatikan bahwa parameter ini harus di-urlEncode saat dikirim. |
