リクエスト
| 基本情報 | |
|---|---|
| HTTP URL | https://api.dingtalk.io/topapi/attendance/group/modify |
| HTTP メソッド | POST |
| 対応アプリタイプ | appType-社内アプリ |
| 必要な権限 | permission-qyapi_attendance_group_manage-勤怠グループ管理権限 |
クエリパラメータ
| 名前 | タイプ | 必須 | 例 | 説明 |
|---|---|---|---|---|
| access_token | String | はい | b5e95d101165xxxx | この API を呼び出すためのアプリ認証情報です。社内アプリの access_token を取得 API を呼び出して取得してください。 |
リクエストボディ
| 名前 | タイプ | 必須 | 例 | 説明 |
|---|---|---|---|---|
| op_user_id | String | はい | 123dfd | 操作者のユーザー ID です。 |
| top_group | Object | はい | 勤怠グループの情報です。 | |
| shift_vo_list | Object[] | いいえ | シフトの情報です。 | |
| id | Number | いいえ | 123 | シフト ID です。シフト概要の取得 API を呼び出して id の値を取得してください。 |
| id | Number | はい | 123 | 勤怠グループ ID です。 注意 旧来の勤怠グループ識別子 group_key を使用している場合は、groupKey から groupId への変換 API を呼び出して、group_key を group_id に変換してください。 |
| name | String | いいえ | 日勤勤怠 | 勤怠グループ名です。 |
| positions | Object[] | いいえ | 勤怠場所の設定です。 | |
| address | String | いいえ | バイオテクノロジー産業パーク 経二路21号 | 住所です。 |
| corp_id | String | いいえ | 123dfd | 組織の CorpId です。開発者コンソールのホームページで確認できます。 |
| latitude | String | いいえ | 36.687495 | 緯度です(小数点以下 6 桁まで)。 |
| longitude | String | いいえ | 101.750329 | 経度です(小数点以下 6 桁まで)。 |
| title | String | いいえ | 青海チベット高原自然史博物館 | 勤怠場所のタイトルです。 |
| accuracy | String | いいえ | 0 | 精度です。 注意 このフィールドは実際には機能せず、精度に影響しません。2022年3月7日に廃止されました。 |
| offset | Number | いいえ | 300 | 勤怠の有効範囲です。 |
| manager_list | String[] | いいえ | [“userId1”,“userId2”] | 勤怠グループのサブ管理者のユーザー ID リストです。 |
| enable_camera_check | Boolean | いいえ | true | 写真打刻を有効にするかどうかを指定します。 - true:オン - false(デフォルト):オフ 注意 このパラメータは廃止されました。代わりに open_camera_check パラメータを使用してください。 |
| owner | String | いいえ | 123dfdf | 勤怠担当者のユーザー ID です。 |
| disable_check_when_rest | Boolean | いいえ | false | 休日の打刻に承認が必要かどうかを指定します。 - true:必要 - false:不要 |
| skip_holidays | Boolean | いいえ | true | 祝日をスキップするかどうかを指定します。 - true(デフォルト):スキップする - false:スキップしない |
| enable_outside_check | Boolean | いいえ | true | 外勤打刻を許可するかどうかを指定します。 - true(デフォルト):許可 - false:許可しない |
| disable_check_without_schedule | Boolean | いいえ | false | シフトが割り当てられていない場合に、社員の打刻を禁止するかどうかを指定します。 - true:禁止 - false:禁止しない |
| enable_emp_select_class | Boolean | いいえ | true | シフトが割り当てられていない場合に、社員がシフトを選択して打刻できるかどうかを指定します。 - true:許可 - false:許可しない |
| resource_permission_map | Object | いいえ | サブ管理者の権限スコープです。 - w:管理可能 - r:閲覧のみ | |
| camera_check | String | いいえ | w | 写真打刻ルールの設定です。 |
| over_time_rule | String | いいえ | r | 残業ルールの設定です。 |
| check_position_type | String | いいえ | w | 打刻方法の設定です。 |
| check_time | String | いいえ | r | 勤怠時間の設定です。 |
| group_type | String | いいえ | w | 勤怠タイプの設定です。 |
| group_member | String | いいえ | r | 勤怠対象者の設定です。 |
| schedule | String | いいえ | w | 社員のシフト設定です。 |
| out_side_check | String | いいえ | r | 外勤打刻の設定です。 |
| workday_class_list | Number[] | いいえ | [12,12,12,12,0,0] | 1 週間のシフトリストです。 注意 - 固定シフト制の場合は必須です。0 は休日を表します。 - 配列内の値は、左から順に日曜日から土曜日までの毎日のシフト設定を表します。 |
| open_camera_check | Boolean | いいえ | true | 写真打刻を有効にするかどうかを指定します。 - true:オン - false(デフォルト):オフ |
リクエスト例
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("バイオテクノロジー産業パーク 経二路21号");
topPositionVo.setCorpId("ding9f741xxxx");
topPositionVo.setLatitude("30.123");
topPositionVo.setAccuracy("0");
topPositionVo.setTitle("青海チベット高原自然史博物館");
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("テスト勤怠グループ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;
// 以下は API ドキュメントに記載されているフィールドです:
$top_group->name = "日勤勤怠";
$top_group->type = "TURN"; // FIXED:固定シフト制、TURN:シフト制、NONE:フレックスタイム
$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 - 勤怠場所のリスト
$positions = new TopPositionVo;
$positions->title = "青海チベット高原自然史博物館";
$positions->address = "バイオテクノロジー産業パーク 経二路21号";
$positions->latitude = "36.687495";
$positions->longitude = "101.750329";
$positions->accuracy = "0";
// 注意:positions では corp_id フィールドは不要です
$top_group->positions = array($positions);
// members - 勤怠グループのメンバーリスト
$members = new TopMemberVo;
$members->user_id = "1212jfkd";
$members->type = "StaffMember";
$members->role = "Attendance";
// 注意:members では corp_id フィールドは不要です
$top_group->members = array($members);
// wifis - Wi-Fi 打刻ポイントのリスト
$wifis = new TopWifiVo;
$wifis->ssid = "OFFICE-WiFi";
$wifis->mac_addr = "C0:E0:D0:E0:C0:0F";
// 注意:wifis では corp_id フィールドは不要です
$top_group->wifis = array($wifis);
// shift_vo_list - シフトのリスト
$shift_vo_list = new TopShiftVo;
$shift_vo_list->id = "123";
$top_group->shift_vo_list = array($shift_vo_list);
// resource_permission_map - リソース権限のマッピング
$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;
// 以下のフィールドは API ドキュメントに存在しないため削除しました:
// - owner:勤怠担当者(代わりに manager_list で設定します)
// - enable_emp_select_class:非標準フィールド
// - corp_id:組織ID はトークンから取得されるため、リクエストボディで設定する必要はありません
// - skip_holidays:非標準フィールド
// - special_days:非標準フィールド
// - id:作成時に ID は渡さないでください。システムが自動生成します。
$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 = "日勤勤怠";
List<OapiAttendanceGroupModifyRequest.TopPositionVoDomain> list6 = new List<OapiAttendanceGroupModifyRequest.TopPositionVoDomain>();
OapiAttendanceGroupModifyRequest.TopPositionVoDomain obj7 = new OapiAttendanceGroupModifyRequest.TopPositionVoDomain();
list6.Add(obj7);
obj7.Address = "バイオテクノロジー産業パーク 経二路21号";
obj7.CorpId = "123dfd";
obj7.Latitude = "36.687495";
obj7.Longitude = "101.750329";
obj7.Title = "青海チベット高原自然史博物館";
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);
レスポンス
レスポンスボディ
| 名前 | タイプ | 例 | 説明 |
|---|---|---|---|
| result | Object | 勤怠グループの結果です。 | |
| name | String | 日勤勤怠 | 勤怠グループ名です。 |
| id | Number | 123 | 勤怠グループ ID です。 |
| errmsg | String | 0 | エラーメッセージです。 |
| errcode | Number | ok | エラーコードです。 |
| success | Boolean | true | 呼び出しに成功したかどうかを示します。 - true:成功 - false:失敗 |
レスポンスボディの例
{
"result":{
"name":"日勤勤怠",
"id":"123"
},
"errcode":0,
"success":true,
"errmsg":"ok"
}