Permintaan
| Informasi dasar | |
|---|---|
| URL HTTP | https://api.dingtalk.io/topapi/attendance/group/modify |
| Metode HTTP | POST |
| Jenis aplikasi yang didukung | appType-Aplikasi internal |
| Izin yang diperlukan | permission-qyapi_attendance_group_manage-Izin pengelolaan grup absensi |
Parameter query
| Nama | Tipe | Wajib | Contoh | Deskripsi |
|---|---|---|---|---|
| access_token | String | Ya | b5e95d101165xxxx | Kredensial aplikasi untuk memanggil API ini. Dapatkan kredensial ini dengan memanggil API Mendapatkan access_token Aplikasi internal. |
Isi permintaan
| Nama | Tipe | Wajib | Contoh | Deskripsi |
|---|---|---|---|---|
| op_user_id | String | Ya | 123dfd | ID pengguna operator. |
| top_group | Object | Ya | Informasi grup absensi. | |
| shift_vo_list | Object[] | Tidak | Informasi shift. | |
| id | Number | Tidak | 123 | ID shift. Dapatkan nilai id dengan memanggil API Mendapatkan ringkasan shift. |
| id | Number | Ya | 123 | ID grup absensi. Catatan Jika Anda menggunakan pengenal grup absensi versi lama (group_key), panggil API Konversi groupKey ke groupId untuk mengonversi group_key menjadi group_id. |
| name | String | Tidak | Absensi Shift Siang | Nama grup absensi. |
| positions | Object[] | Tidak | Pengaturan alamat absensi. | |
| address | String | Tidak | Jl. Jinger No. 21, Kawasan Industri Bioteknologi | Alamat. |
| corp_id | String | Tidak | 123dfd | CorpId Organisasi. Temukan CorpId di halaman Beranda Developer Console. |
| latitude | String | Tidak | 36.687495 | Garis lintang (maksimal 6 angka desimal). |
| longitude | String | Tidak | 101.750329 | Garis bujur (maksimal 6 angka desimal). |
| title | String | Tidak | Museum Sejarah Alam Dataran Tinggi Qinghai-Tibet | Judul lokasi absensi. |
| accuracy | String | Tidak | 0 | Akurasi. Catatan Bidang ini tidak berfungsi dan tidak memengaruhi akurasi. Bidang ini tidak digunakan lagi sejak 7 Maret 2022. |
| offset | Number | Tidak | 300 | Jangkauan absensi. |
| manager_list | String[] | Tidak | [“userId1”,“userId2”] | Daftar ID pengguna Sub Admin grup absensi. |
| enable_camera_check | Boolean | Tidak | true | Menentukan apakah fitur absen dengan foto diaktifkan. - true: Aktif - false (default): Nonaktif Catatan Parameter ini tidak digunakan lagi. Gunakan parameter open_camera_check sebagai gantinya. |
| owner | String | Tidak | 123dfdf | ID pengguna penanggung jawab absensi. |
| disable_check_when_rest | Boolean | Tidak | false | Menentukan apakah absen pada hari libur memerlukan Persetujuan. - true: Wajib - false: Tidak wajib |
| skip_holidays | Boolean | Tidak | true | Menentukan apakah hari libur nasional dilewati. - true (default): Lewati - false: Jangan lewati |
| enable_outside_check | Boolean | Tidak | true | Menentukan apakah absensi lapangan diizinkan. - true (default): Izinkan - false: Jangan izinkan |
| disable_check_without_schedule | Boolean | Tidak | false | Menentukan apakah karyawan dilarang absen jika tidak ada jadwal shift. - true: Larang - false: Jangan larang |
| enable_emp_select_class | Boolean | Tidak | true | Menentukan apakah karyawan dapat memilih shift untuk absen jika tidak ada jadwal shift. - true: Izinkan - false: Jangan izinkan |
| resource_permission_map | Object | Tidak | Cakupan izin Sub Admin. - w: Dapat dikelola - r: Hanya Baca | |
| camera_check | String | Tidak | w | Konfigurasikan aturan absen dengan foto. |
| over_time_rule | String | Tidak | r | Konfigurasikan aturan lembur. |
| check_position_type | String | Tidak | w | Konfigurasikan metode absen. |
| check_time | String | Tidak | r | Konfigurasikan waktu absensi. |
| group_type | String | Tidak | w | Konfigurasikan jenis absensi. |
| group_member | String | Tidak | r | Konfigurasikan anggota absensi. |
| schedule | String | Tidak | w | Penjadwalan shift karyawan. |
| out_side_check | String | Tidak | r | Konfigurasikan absensi lapangan. |
| workday_class_list | Number[] | Tidak | [12,12,12,12,0,0] | Daftar shift mingguan. Catatan - Wajib untuk absensi shift tetap. Nilai 0 menandakan hari libur. - Nilai dalam array mewakili penjadwalan shift harian dari Minggu hingga Sabtu, dari kiri ke kanan. |
| open_camera_check | Boolean | Tidak | true | Menentukan apakah fitur absen dengan foto diaktifkan. - true: Aktif - false (default): Nonaktif |
Contoh permintaan
curl -X POST "https://api.dingtalk.io/topapi/attendance/group/modify" \
-H 'Content-Type:application/x-www-form-urlencoded;charset=utf-8' \
-d 'access_token=ca21b524-0a09-4909-b6e9-af087e28a86b' \
-d 'op_user_id=123dfd' \
-d 'top_group=null'
DingTalkClient client = new DefaultDingTalkClient("https://api.dingtalk.io/topapi/attendance/group/modify");
OapiAttendanceGroupModifyRequest req = new OapiAttendanceGroupModifyRequest();
req.setOpUserId("user1");
TopGroupVo topGroupVo = new TopGroupVo();
topGroupVo.setOwner("user1");
topGroupVo.setEnableEmpSelectClass(true);
topGroupVo.setSkipHolidays(true);
List<TopPositionVo> positionVos = new ArrayList<TopPositionVo>();
TopPositionVo topPositionVo = new TopPositionVo();
positionVos.add(topPositionVo);
topPositionVo.setAddress("Jl. Jinger No. 21, Kawasan Industri Bioteknologi");
topPositionVo.setCorpId("ding9f741xxxx");
topPositionVo.setLatitude("30.123");
topPositionVo.setAccuracy("0");
topPositionVo.setTitle("Museum Sejarah Alam Dataran Tinggi Qinghai-Tibet");
topPositionVo.setLongitude("120.123");
topGroupVo.setPositions(positionVos);
topGroupVo.setEnableCameraCheck(true);
List<TopShiftVo> topShiftVos = new ArrayList<TopShiftVo>();
TopShiftVo topShiftVo = new TopShiftVo();
topShiftVos.add(topShiftVo);
topShiftVo.setId(678215070L);
topGroupVo.setShiftVoList(topShiftVos);
topGroupVo.setEnableOutsideCheck(true);
topGroupVo.setName("Grup Absensi Uji 1");
topGroupVo.setId(2987L);
topGroupVo.setManagerList(Arrays.asList("userId1"));
topGroupVo.setOffset(500L);
topGroupVo.setDisableCheckWithoutSchedule(false);
topGroupVo.setWorkdayClassList(Arrays.asList(12L,12L,12L,12L,12L,0L,0L));
req.setTopGroup(topGroupVo);
OapiAttendanceGroupModifyResponse rsp = client.execute(req, access_token);
System.out.println(rsp.getBody());
import dingtalk.api
req=dingtalk.api.OapiAttendanceGroupModifyRequest("https://api.dingtalk.io/topapi/attendance/group/modify")
req.op_user_id="123dfd"
req.top_group=""
try:
resp= req.getResponse(access_token)
print(resp)
except Exception,e:
print(e)
include "TopSdk.php";
date_default_timezone_set('Asia/Shanghai');
$c = new DingTalkClient(DingTalkConstant::$CALL_TYPE_OAPI, DingTalkConstant::$METHOD_POST, DingTalkConstant::$FORMAT_JSON);
$req = new OapiAttendanceGroupAddRequest;
$req->setOpUserId("123dfd");
$top_group = new TopGroupVo;
// Bidang berikut tercantum dalam dokumentasi API:
$top_group->name = "Absensi Shift Siang";
$top_group->type = "TURN"; // FIXED: absensi shift tetap, TURN: absensi berbasis shift, NONE: jam kerja fleksibel
$top_group->enable_camera_check = "true";
$top_group->enable_outside_camera_check = "true";
$top_group->enable_outside_check = "true";
$top_group->enable_next_day = "false";
$top_group->modify_member = "true";
$top_group->offset = "500";
$top_group->default_class_id = "1234";
$top_group->manager_list = "[\"userId1\",\"userId2\"]";
$top_group->workday_class_list = "[12,12,12,12,12,0,0]";
$top_group->disable_check_without_schedule = "false";
$top_group->freecheck_work_days = "[1,2,3,4,5,6,0]";
$top_group->freecheck_day_start_min_offset = "240";
$top_group->disable_check_when_rest = "false";
// positions - Daftar lokasi absensi
$positions = new TopPositionVo;
$positions->title = "Museum Sejarah Alam Dataran Tinggi Qinghai-Tibet";
$positions->address = "Jl. Jinger No. 21, Kawasan Industri Bioteknologi";
$positions->latitude = "36.687495";
$positions->longitude = "101.750329";
$positions->accuracy = "0";
// Catatan: Bidang corp_id tidak wajib diisi di positions
$top_group->positions = array($positions);
// members - Daftar anggota grup absensi
$members = new TopMemberVo;
$members->user_id = "1212jfkd";
$members->type = "StaffMember";
$members->role = "Attendance";
// Catatan: Bidang corp_id tidak wajib diisi di members
$top_group->members = array($members);
// wifis - Daftar titik absen WiFi
$wifis = new TopWifiVo;
$wifis->ssid = "OFFICE-WiFi";
$wifis->mac_addr = "C0:E0:D0:E0:C0:0F";
// Catatan: Bidang corp_id tidak wajib diisi di wifis
$top_group->wifis = array($wifis);
// shift_vo_list - Daftar shift
$shift_vo_list = new TopShiftVo;
$shift_vo_list->id = "123";
$top_group->shift_vo_list = array($shift_vo_list);
// resource_permission_map - Pemetaan izin sumber daya
$resource_permission_map = new TopGroupManageRolePermissionVo;
$resource_permission_map->schedule = "w";
$resource_permission_map->group_member = "w";
$resource_permission_map->group_type = "r";
$resource_permission_map->check_time = "w";
$resource_permission_map->check_position_type = "r";
$resource_permission_map->over_time_rule = "r";
$resource_permission_map->camera_check = "w";
$resource_permission_map->out_side_check = "w";
$top_group->resource_permission_map = $resource_permission_map;
// Bidang berikut tidak tercantum dalam dokumentasi API dan telah dihapus:
// - owner: Penanggung jawab absensi (atur melalui manager_list)
// - enable_emp_select_class: Bidang nonstandar
// - corp_id: ID Organisasi diperoleh dari token dan tidak perlu diatur di isi permintaan
// - skip_holidays: Bidang nonstandar
// - special_days: Bidang nonstandar
// - id: Jangan kirim ID saat membuat grup. Sistem akan membuatnya secara otomatis.
$req->setTopGroup($top_group);
$resp = $c->execute($req, $access_token, "https://api.dingtalk.io/topapi/attendance/group/add");
IDingTalkClient client = new DefaultDingTalkClient("https://api.dingtalk.io/topapi/attendance/group/modify");
OapiAttendanceGroupModifyRequest req = new OapiAttendanceGroupModifyRequest();
req.OpUserId = "123dfd";
OapiAttendanceGroupModifyRequest.TopGroupVoDomain obj1 = new OapiAttendanceGroupModifyRequest.TopGroupVoDomain();
List<OapiAttendanceGroupModifyRequest.TopShiftVoDomain> list3 = new List<OapiAttendanceGroupModifyRequest.TopShiftVoDomain>();
OapiAttendanceGroupModifyRequest.TopShiftVoDomain obj4 = new OapiAttendanceGroupModifyRequest.TopShiftVoDomain();
list3.Add(obj4);
obj4.Id = 123L;
obj1.ShiftVoList= list3;
obj1.Id = 123L;
obj1.Name = "Absensi Shift Siang";
List<OapiAttendanceGroupModifyRequest.TopPositionVoDomain> list6 = new List<OapiAttendanceGroupModifyRequest.TopPositionVoDomain>();
OapiAttendanceGroupModifyRequest.TopPositionVoDomain obj7 = new OapiAttendanceGroupModifyRequest.TopPositionVoDomain();
list6.Add(obj7);
obj7.Address = "Jl. Jinger No. 21, Kawasan Industri Bioteknologi";
obj7.CorpId = "123dfd";
obj7.Latitude = "36.687495";
obj7.Longitude = "101.750329";
obj7.Title = "Museum Sejarah Alam Dataran Tinggi Qinghai-Tibet";
obj7.Accuracy = "0";
obj1.Positions= list6;
obj1.Offset = 300L;
obj1.ManagerList = "\"userId1\",\"userId2\"";
obj1.EnableCameraCheck = true;
obj1.Owner = "123dfdf";
obj1.SkipHolidays = true;
obj1.EnableOutsideCheck = true;
obj1.DisableCheckWithoutSchedule = false;
obj1.EnableEmpSelectClass = true;
obj1.WorkdayClassList = new long[] { 12,12,12,12,0,0 };
req.TopGroup_ = obj1;
OapiAttendanceGroupModifyResponse rsp = client.Execute(req, access_token);
Console.WriteLine(rsp.Body);
Respons
Isi respons
| Nama | Tipe | Contoh | Deskripsi |
|---|---|---|---|
| result | Object | Hasil grup absensi. | |
| name | String | Absensi Shift Siang | Nama grup absensi. |
| id | Number | 123 | ID grup absensi. |
| errmsg | String | 0 | Pesan error. |
| errcode | Number | ok | Kode error. |
| success | Boolean | true | Menunjukkan apakah panggilan berhasil. - true: Berhasil - false: Gagal |
Contoh isi respons
{
"result":{
"name":"Absensi Shift Siang",
"id":"123"
},
"errcode":0,
"success":true,
"errmsg":"ok"
}