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

# Perbarui anggota absensi

> Panggil API DingTalk ini untuk menambah atau menghapus anggota absensi, anggota bebas absensi, dan departemen absensi di grup absensi secara otomatis.

Panggil API ini untuk memperbarui anggota grup absensi. Tambah atau hapus **anggota absensi** dan **anggota bebas absensi** untuk grup absensi tertentu.

## Permintaan

| **Informasi dasar** | |
| - | - |
| URL HTTP | [https://api.dingtalk.io/topapi/attendance/group/member/update](https://api.dingtalk.io/topapi/attendance/group/member/update) |
| Metode HTTP | POST |
| Tipe aplikasi yang didukung | appType-Aplikasi internal　appType-Aplikasi perusahaan pihak ketiga |
| Izin yang diperlukan | qyapi\_attendance\_group\_manage (Izin pengelolaan grup absensi) |

### Parameter query

| Nama | Tipe | Wajib | Contoh | Deskripsi |
| - | - | - | - | - |
| access\_token | String | Ya | bE74xxxx | Kredensial aplikasi yang digunakan untuk memanggil API ini.   - Untuk Aplikasi internal, panggil API [Mendapatkan access\_token Aplikasi internal](https://help.dingtalk.io/id/open/development/obtain-orgapp-token) untuk memperolehnya. - Untuk Aplikasi perusahaan pihak ketiga, panggil API untuk mendapatkan access\_token organisasi pihak ketiga untuk memperolehnya. |

### Isi permintaan

| Nama | Tipe | Wajib | Contoh | Deskripsi |
| - | - | - | - | - |
| op\_user\_id | String | Ya | user123 | userId operator. |
| group\_id | Number | Ya | 98562 | ID grup absensi.  **Catatan**  Jika Anda menggunakan pengenal grup absensi versi lama (group\_key), panggil API [Konversi groupKey ke groupId](https://help.dingtalk.io/id/open/development/convert-groupkey-to-groupid.md) untuk mengonversi group\_key menjadi group\_id. |
| schedule\_flag | Number | Ya | 0 | Hari dimulainya penjadwalan shift.   - **0**: Mulai penjadwalan shift hari ini - **1**: Mulai penjadwalan shift besok |
| update\_param | TopGroupMemberUpdateParam | Ya | | Informasi pembaruan grup absensi. |
| remove\_extra\_users | String\[] | Tidak | \["user123","user456"] | Anggota bebas absensi yang akan dihapus. Biarkan kosong jika tidak diperlukan. Maksimal 20 userId per panggilan. |
| remove\_depts | String\[] | Tidak | \["123","456"] | Departemen absensi yang akan dihapus. Biarkan kosong jika tidak diperlukan. Maksimal 20 ID departemen per panggilan. |
| remove\_users | String\[] | Tidak | \["user123","user456"] | Anggota absensi yang akan dihapus. Biarkan kosong jika tidak diperlukan. Maksimal 20 userId per panggilan. |
| add\_depts | String\[] | Tidak | \["123","456"] | Departemen absensi yang akan ditambahkan. Biarkan kosong jika tidak diperlukan. Maksimal 20 ID departemen per panggilan. |
| add\_users | String\[] | Tidak | \["user123","user456"] | Anggota absensi yang akan ditambahkan. Biarkan kosong jika tidak diperlukan. Maksimal 20 userId per panggilan. |
| add\_extra\_users | String\[] | Tidak | \["user123","user456"] | Anggota bebas absensi yang akan ditambahkan. Biarkan kosong jika tidak diperlukan. Maksimal 20 userId per panggilan. |

### Contoh permintaan

```curl theme={"theme":{"light":"github-light","dark":"github-dark"}}
curl -X POST "https://api.dingtalk.io/topapi/attendance/group/member/update" \
-H 'Content-Type:application/x-www-form-urlencoded;charset=utf-8' \
-d 'access_token=0142dxxxxa6204' \
-d 'group_id=122' \
-d 'op_user_id=dd_dd' \
-d 'schedule_flag=0' \
-d 'update_param=null'
```

Java

```java theme={"theme":{"light":"github-light","dark":"github-dark"}}
DingTalkClient client = new DefaultDingTalkClient("https://api.dingtalk.io/topapi/attendance/group/member/update");
OapiAttendanceGroupMemberUpdateRequest req = new OapiAttendanceGroupMemberUpdateRequest();
req.setOpUserId("user123");
req.setGroupId(98562L);
req.setScheduleFlag(0L);
TopGroupMemberUpdateParam updateParam = new TopGroupMemberUpdateParam();
updateParam.setAddDepts(Arrays.asList("123"));
updateParam.setRemoveDepts(Arrays.asList("456"));
updateParam.setAddUsers(Arrays.asList("user123"));
updateParam.setAddExtraUsers(Arrays.asList("user456"));
updateParam.setRemoveExtraUsers(Arrays.asList("user789"));
updateParam.setRemoveUsers(Arrays.asList("user121"));
req.setUpdateParam(updateParam);
OapiAttendanceGroupMemberUpdateResponse 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.OapiAttendanceGroupMemberUpdateRequest("https://api.dingtalk.io/topapi/attendance/group/member/update")

req.op_user_id="dd_dd"
req.group_id=122
req.schedule_flag=0
req.update_param=""
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 OapiAttendanceGroupMemberUpdateRequest;
$req->setOpUserId("dd_dd");
$req->setGroupId("122");
$req->setScheduleFlag("0");
$update_param = new TopGroupMemberUpdateParam;
$update_param->remove_extra_users="dd_test";
$update_param->remove_depts="1234";
$update_param->remove_users="dd_dd";
$update_param->add_depts="123";
$update_param->add_users="dd_mana";
$update_param->add_extra_users="dd_d";
$req->setUpdateParam($update_param);
$resp = $c->execute($req, $access_token, "https://api.dingtalk.io/topapi/attendance/group/member/update");
```

C#

```csharp theme={"theme":{"light":"github-light","dark":"github-dark"}}
IDingTalkClient client = new DefaultDingTalkClient("https://api.dingtalk.io/topapi/attendance/group/member/update");
OapiAttendanceGroupMemberUpdateRequest req = new OapiAttendanceGroupMemberUpdateRequest();
req.OpUserId = "dd_dd";
req.GroupId = 122L;
req.ScheduleFlag = 0L;
OapiAttendanceGroupMemberUpdateRequest.TopGroupMemberUpdateParamDomain obj1 = new OapiAttendanceGroupMemberUpdateRequest.TopGroupMemberUpdateParamDomain();
obj1.RemoveExtraUsers = "dd_test";
obj1.RemoveDepts = "1234";
obj1.RemoveUsers = "dd_dd";
obj1.AddDepts = "123";
obj1.AddUsers = "dd_mana";
obj1.AddExtraUsers = "dd_d";
req.UpdateParam_ = obj1;
OapiAttendanceGroupMemberUpdateResponse rsp = client.Execute(req, access_token);
Console.WriteLine(rsp.Body);
```

## Respons

### Isi respons

| Nama | Tipe | Contoh | Deskripsi |
| - | - | - | - |
| request\_id | String | 3pgsafymemlr | ID permintaan. |
| errcode | Number | 0 | Kode respons. |
| success | Boolean | true | Menunjukkan apakah panggilan berhasil.   - **true**: Berhasil - **false**: Gagal |

### Contoh isi respons

```json theme={"theme":{"light":"github-light","dark":"github-dark"}}
{
  "errcode": 0,
  "success": true,
  "request_id": "5sj3lgigiqm9"
}
```

### Kode error

Jika panggilan mengembalikan error, cari solusinya di dokumen [Kode error global](https://help.dingtalk.io/id/open/development/server-api-error-codes-1.md) berdasarkan pesan error.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.