Permintaan
| Informasi dasar | |
|---|---|
| URL HTTP | https://api.dingtalk.io/topapi/attendance/group/add |
| Metode HTTP | POST |
| Tipe 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 | 4c9d5xxxx | Kredensial aplikasi untuk memanggil API ini. Dapatkan dengan memanggil API Dapatkan access_token Aplikasi internal. |
Isi permintaan
| Nama | Tipe | Wajib | Contoh | Deskripsi |
|---|---|---|---|---|
| op_user_id | String | Ya | 123dfd | ID pengguna operator. |
| top_group | TopGroupVo | Ya | Informasi grup absensi. | |
| owner | String | Tidak | 123dfdf | Pemilik grup absensi. |
| enable_emp_select_class | Boolean | Tidak | true | Menentukan apakah karyawan diizinkan memilih shift untuk absen saat tidak ada shift yang dijadwalkan. - true: Izinkan - false: Jangan izinkan |
| corp_id | String | Tidak | dingdfe | CorpId organisasi. Dapatkan di halaman Beranda Developer Console. |
| skip_holidays | Boolean | Tidak | true | Menentukan apakah hari libur dilewati. - true (default): Lewati - false: Jangan lewati |
| special_days | String | Tidak | {"onDuty":{1400000:123,1400001:123},"offDuty":[1400000,1400001]} | Konfigurasi tanggal khusus. |
| enable_outside_camera_check | Boolean | Tidak | true | Menentukan apakah foto wajib diambil saat absensi lapangan. - true: Aktif - false (default): Nonaktif |
| positions | List<TopPositionVo> | Tidak | Pengaturan lokasi absensi. | |
| address | String | Tidak | Jl. Jing’er No. 21, Kawasan Industri Bioteknologi | Alamat absensi. |
| corp_id | String | Tidak | 123dfd | CorpId organisasi. Dapatkan di halaman Beranda Developer Console. |
| latitude | String | Tidak | 36.687495 | Garis lintang. |
| longitude | String | Tidak | 101.750329 | Garis bujur. |
| accuracy | String | Tidak | 0 | Akurasi. Catatan Bidang ini tidak memiliki efek nyata dan tidak memengaruhi akurasi. Bidang ini tidak digunakan lagi sejak 7 Maret 2022. |
| title | String | Tidak | Museum Sejarah Alam Dataran Tinggi Qinghai-Tibet | Judul lokasi absensi. |
| modify_member | Boolean | Tidak | true | Menentukan apakah informasi anggota grup absensi diubah. - true: Diubah - false: Tidak diubah |
| type | String | Ya | TURN | Tipe grup absensi: - FIXED: Grup absensi shift tetap - TURN: Grup absensi berbasis shift - NONE: Grup absensi jam kerja fleksibel |
| enable_camera_check | Boolean | Tidak | true | Menentukan apakah fitur absen dengan foto diaktifkan. - true: Aktif - false (default): Nonaktif |
| shift_vo_list | List<TopShiftVo> | Tidak | Konfigurasi shift. | |
| id | Number | Tidak | 123 | ID shift. Dapatkan nilai id dengan memanggil API Dapatkan ringkasan shift. |
| enable_outside_check | Boolean | Tidak | true | Menentukan apakah absensi lapangan diizinkan. - true (default): Izinkan - false: Jangan izinkan |
| members | List<TopMemberVo> | Ya | Pengaturan anggota grup absensi. | |
| role | String | Ya | Attendance | Peran. Nilai tetap: Attendance. |
| corp_id | String | Tidak | 123dfd | CorpId organisasi. Dapatkan di halaman Beranda Developer Console. |
| type | String | Ya | StaffMember | Tipe: - StaffMember: Tipe pengguna - DeptMember: Tipe departemen |
| user_id | String | Ya | 1212jfkd | ID: - Pengguna: userId - Departemen: deptId |
| name | String | Ya | Absensi Shift Pagi | Nama grup absensi. |
| id | Number | Tidak | 123 | ID grup absensi. |
| enable_next_day | Boolean | Tidak | false | Menentukan apakah pengaturan berlaku mulai hari berikutnya. - true: Ya - false: Tidak |
| manager_list | String[] | Tidak | [“userId1”,“userId2”] | Daftar ID pengguna Sub-Admin grup absensi. |
| workday_class_list | Number[] | Tidak | [0,12,12,12,12,12,0] | Daftar shift mingguan. Catatan - Wajib untuk absensi shift tetap. 0 menunjukkan hari istirahat. - Dari kiri ke kanan, nilai dalam array mewakili penjadwalan shift untuk setiap hari dari Minggu hingga Sabtu. |
| default_class_id | Number | Tidak | 1234 | ID shift default. Catatan Wajib untuk absensi shift tetap. Dapatkan nilai id dengan memanggil API Dapatkan ringkasan shift. |
| offset | Number | Tidak | 500 | Jangkauan absensi. |
| resource_permission_map | TopGroupManageRolePermissionVo | Tidak | Cakupan izin Sub-Admin. - w: Kelola - r: Hanya Baca | |
| schedule | String | Tidak | w | Penjadwalan shift karyawan. |
| group_member | String | Tidak | w | Konfigurasikan anggota absensi. |
| group_type | String | Tidak | r | Konfigurasikan tipe absensi. |
| check_time | String | Tidak | w | Konfigurasikan waktu absensi. |
| check_position_type | String | Tidak | r | Konfigurasikan metode absen. |
| over_time_rule | String | Tidak | r | Konfigurasikan aturan lembur. |
| camera_check | String | Tidak | w | Konfigurasikan aturan absen dengan foto. |
| out_side_check | String | Tidak | w | Konfigurasikan absensi lapangan. |
| wifis | List<TopWifiVo> | Tidak | Konfigurasi absen melalui Wi-Fi. | |
| mac_addr | String | Tidak | C0:E0:D0:E0:C0:0F | Alamat MAC. |
| ssid | String | Tidak | OFFICE-WiFi | SSID jaringan Wi-Fi. |
| corp_id | String | Tidak | 123dfd | CorpId organisasi. Dapatkan di halaman Beranda Developer Console. |
| disable_check_without_schedule | Boolean | Tidak | false | Menentukan apakah karyawan dilarang absen saat tidak ada shift yang dijadwalkan. - true: Larang - false: Jangan larang |
| freecheck_work_days | Number[] | Tidak | [1,2,3,4,5,6,0] | Hari kerja grup absensi jam kerja fleksibel. Catatan - 0 menunjukkan hari istirahat. - Dari kiri ke kanan, nilai dalam array mewakili penjadwalan shift untuk setiap hari dari Minggu hingga Sabtu. |
| freecheck_day_start_min_offset | Number | Tidak | 240 | Selisih dalam menit antara waktu mulai absensi grup absensi jam kerja fleksibel dan pukul 00.00 pada hari tersebut. Contoh: 540 berarti pukul 09.00. |
| disable_check_when_rest | Boolean | Tidak | false | Menentukan apakah absen pada hari istirahat memerlukan persetujuan: - true: Wajib - false: Tidak wajib |
Contoh permintaan
curl -X POST "https://api.dingtalk.io/topapi/attendance/group/add" \
-H 'Content-Type:application/x-www-form-urlencoded;charset=utf-8' \
-d 'access_token=e02c4xxxx5043' \
-d 'op_user_id=123dfd' \
-d 'top_group=null'
DingTalkClient client = new DefaultDingTalkClient("https://api.dingtalk.io/topapi/attendance/group/add");
OapiAttendanceGroupAddRequest req = new OapiAttendanceGroupAddRequest();
req.setOpUserId("dinge8xxxx");
TopGroupVo topGroupVo = new TopGroupVo();
topGroupVo.setOwner("user1");
topGroupVo.setEnableEmpSelectClass(true);
topGroupVo.setCorpId("dinge8xxxx");
topGroupVo.setSkipHolidays(true);
topGroupVo.setSpecialDays("{\"onDuty\":{1400000:123,1400001:123},\"offDuty\":[1400000,1400001]}");
topGroupVo.setEnableOutsideCameraCheck(true);
List<TopPositionVo> positionVos = new ArrayList<TopPositionVo>();
TopPositionVo topPositionVo = new TopPositionVo();
positionVos.add(topPositionVo);
topPositionVo.setAddress("Jl. Jing'er No. 21, Kawasan Industri Bioteknologi");
topPositionVo.setCorpId("dinge8xxxx");
topPositionVo.setLatitude("36.687495");
topPositionVo.setAccuracy("0");
topPositionVo.setTitle("Museum Sejarah Alam Dataran Tinggi Qinghai-Tibet");
topPositionVo.setLongitude("101.750329");
topGroupVo.setPositions(positionVos);
topGroupVo.setModifyMember(true);
topGroupVo.setType("TURN");
topGroupVo.setEnableCameraCheck(true);
List<TopShiftVo> topShiftVos = new ArrayList<TopShiftVo>();
TopShiftVo topShiftVo = new TopShiftVo();
topShiftVos.add(topShiftVo);
topShiftVo.setId(123L);
topGroupVo.setShiftVoList(topShiftVos);
topGroupVo.setEnableOutsideCheck(true);
List<TopMemberVo> memberVos = new ArrayList<TopMemberVo>();
TopMemberVo topMemberVo = new TopMemberVo();
memberVos.add(topMemberVo);
topMemberVo.setRole("Attendance");
topMemberVo.setCorpId("dinge8xxxx");
topMemberVo.setType("StaffMember");
topMemberVo.setUserId("user1");
topGroupVo.setMembers(memberVos);
topGroupVo.setName("Absensi Shift Pagi");
topGroupVo.setEnableNextDay(false);
topGroupVo.setManagerList(Arrays.asList("userId1","userId2"));
topGroupVo.setDefaultClassId(1234L);
topGroupVo.setOffset(500L);
TopGroupManageRolePermissionVo groupManageRolePermissionVo = new TopGroupManageRolePermissionVo();
groupManageRolePermissionVo.setSchedule("w");
groupManageRolePermissionVo.setGroupMember("w");
groupManageRolePermissionVo.setGroupType("r");
groupManageRolePermissionVo.setCheckTime("w");
groupManageRolePermissionVo.setCheckPositionType("r");
groupManageRolePermissionVo.setOverTimeRule("r");
groupManageRolePermissionVo.setCameraCheck("w");
groupManageRolePermissionVo.setOutSideCheck("w");
topGroupVo.setResourcePermissionMap(groupManageRolePermissionVo);
List<TopWifiVo> topWifiVos = new ArrayList<TopWifiVo>();
TopWifiVo topWifiVo = new TopWifiVo();
topWifiVos.add(topWifiVo);
topWifiVo.setMacAddr("C0:E0:D0:E0:C0:0F");
topWifiVo.setSsid("OFFICE-WiFi");
topWifiVo.setCorpId("dinge8xxxx");
topGroupVo.setWifis(topWifiVos);
topGroupVo.setDisableCheckWithoutSchedule(false);
topGroupVo.setFreecheckDayStartMinOffset(240L);
topGroupVo.setDisableCheckWhenRest(true);
req.setTopGroup(topGroupVo);
OapiAttendanceGroupAddResponse rsp = client.execute(req, access_token);
System.out.println(rsp.getBody());
import dingtalk.api
req=dingtalk.api.OapiAttendanceGroupAddRequest("https://api.dingtalk.io/topapi/attendance/group/add")
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;
$top_group->name = "Absensi Shift Pagi";
$top_group->type = "TURN";
$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 = new TopPositionVo;
$positions->title = "Museum Sejarah Alam Dataran Tinggi Qinghai-Tibet";
$positions->address = "Jl. Jing'er No. 21, Kawasan Industri Bioteknologi";
$positions->latitude = "36.687495";
$positions->longitude = "101.750329";
$positions->accuracy = "0";
$top_group->positions = array($positions);
$members = new TopMemberVo;
$members->user_id = "1212jfkd";
$members->type = "StaffMember";
$members->role = "Attendance";
$top_group->members = array($members);
$wifis = new TopWifiVo;
$wifis->ssid = "OFFICE-WiFi";
$wifis->mac_addr = "C0:E0:D0:E0:C0:0F";
$top_group->wifis = array($wifis);
$shift_vo_list = new TopShiftVo;
$shift_vo_list->id = "123";
$top_group->shift_vo_list = array($shift_vo_list);
$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;
$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/add");
OapiAttendanceGroupAddRequest req = new OapiAttendanceGroupAddRequest();
req.OpUserId = "123dfd";
OapiAttendanceGroupAddRequest.TopGroupVoDomain obj1 = new OapiAttendanceGroupAddRequest.TopGroupVoDomain();
obj1.Owner = "123dfdf";
obj1.EnableEmpSelectClass = true;
obj1.CorpId = "dingdfe";
obj1.SkipHolidays = true;
obj1.SpecialDays = "{\"onDuty\":{1400000:123,1400001:123},\"offDuty\":[1400000,1400001]}";
obj1.EnableOutsideCameraCheck = true;
List<OapiAttendanceGroupAddRequest.TopPositionVoDomain> list3 = new List<OapiAttendanceGroupAddRequest.TopPositionVoDomain>();
OapiAttendanceGroupAddRequest.TopPositionVoDomain obj4 = new OapiAttendanceGroupAddRequest.TopPositionVoDomain();
list3.Add(obj4);
obj4.Address = "Jl. Jing'er No. 21, Kawasan Industri Bioteknologi";
obj4.CorpId = "123dfd";
obj4.Latitude = "36.687495";
obj4.Accuracy = "0";
obj4.Title = "Museum Sejarah Alam Dataran Tinggi Qinghai-Tibet";
obj4.Longitude = "101.750329";
obj1.Positions = list3;
obj1.ModifyMember = true;
obj1.Type = "TURN";
obj1.EnableCameraCheck = true;
List<OapiAttendanceGroupAddRequest.TopShiftVoDomain> list6 = new List<OapiAttendanceGroupAddRequest.TopShiftVoDomain>();
OapiAttendanceGroupAddRequest.TopShiftVoDomain obj7 = new OapiAttendanceGroupAddRequest.TopShiftVoDomain();
list6.Add(obj7);
obj7.Id = 123L;
obj1.ShiftVoList = list6;
obj1.EnableOutsideCheck = true;
List<OapiAttendanceGroupAddRequest.TopMemberVoDomain> list9 = new List<OapiAttendanceGroupAddRequest.TopMemberVoDomain>();
OapiAttendanceGroupAddRequest.TopMemberVoDomain obj10 = new OapiAttendanceGroupAddRequest.TopMemberVoDomain();
list9.Add(obj10);
obj10.Role = "Attendance";
obj10.CorpId = "123dfd";
obj10.Type = "StaffMember";
obj10.UserId = "1212jfkd";
obj1.Members = list9;
obj1.Name = "Absensi Shift Pagi";
obj1.EnableNextDay = false;
obj1.ManagerList = "\"userId1\",\"userId2\"";
obj1.DefaultClassId = 1234L;
obj1.Offset = 500L;
OapiAttendanceGroupAddRequest.TopGroupManageRolePermissionVoDomain obj11 = new OapiAttendanceGroupAddRequest.TopGroupManageRolePermissionVoDomain();
obj11.Schedule = "w";
obj11.GroupMember = "w";
obj11.GroupType = "r";
obj11.CheckTime = "w";
obj11.CheckPositionType = "r";
obj11.OverTimeRule = "r";
obj11.CameraCheck = "w";
obj11.OutSideCheck = "w";
obj1.ResourcePermissionMap = obj11;
List<OapiAttendanceGroupAddRequest.TopWifiVoDomain> list13 = new List<OapiAttendanceGroupAddRequest.TopWifiVoDomain>();
OapiAttendanceGroupAddRequest.TopWifiVoDomain obj14 = new OapiAttendanceGroupAddRequest.TopWifiVoDomain();
list13.Add(obj14);
obj14.MacAddr = "C0:E0:D0:E0:C0:0F";
obj14.Ssid = "OFFICE-WiFi";
obj14.CorpId = "123dfd";
obj1.Wifis = list13;
obj1.DisableCheckWithoutSchedule = false;
obj1.FreecheckDayStartMinOffset = 240L;
obj1.DisableCheckWhenRest = false;
req.TopGroup_ = obj1;
OapiAttendanceGroupAddResponse rsp = client.Execute(req, access_token);
Console.WriteLine(rsp.Body);
Respons
Isi respons
| Nama | Tipe | Contoh | Deskripsi |
|---|---|---|---|
| result | TopGroupVo | Hasil panggilan. | |
| name | String | Absensi Shift Pagi | Nama grup absensi. |
| id | Number | 712070073 | ID grup absensi. |
| success | Boolean | true | Menunjukkan apakah panggilan berhasil. - true: Berhasil - false: Gagal |
| errcode | Number | 0 | Kode respons. |
| errmsg | String | Error sistem | Deskripsi kode respons. |
| request_id | String | 6pcx0i2ujtt9 | ID permintaan. |
Contoh isi respons
{
"result":{
"name":"Absensi Shift Pagi",
"id":712070073
},
"errcode":0,
"success":true,
"errmsg":"ok",
"request_id":"6pcx0i2ujtt9"
}